PPTX MIME Type – Free, Online, Private
A .pptx deck is a ZIP of presentation XML. The type is the Open XML presentationml type.
What .pptx is
PPTX is an Office Open XML presentation. The ZIP contains [Content_Types].xml, ppt/presentation.xml, and slide parts. Media such as images sit in ppt/media and are not separate HTTP responses unless you extract them. IANA registers application/vnd.openxmlformats-officedocument.presentationml.presentation. A PDF export of the same slides is application/pdf. A slideshow template .potx has its own type. The binary .ppt format is not this package and does not start with PK.
IANA registers application/vnd.openxmlformats-officedocument.presentationml.presentation. The media type is application/vnd.openxmlformats-officedocument.presentationml.presentation. Extensions that use it on this page: .pptx. A client compares the type, not the filename, once the response has arrived. The filename still matters on disk and in Content-Disposition, which is why a wrong extension and a wrong header are two different bugs.
What sends application/vnd.openxmlformats-officedocument.presentationml.presentation
What sends application/vnd.openxmlformats-officedocument.presentationml.presentation: Send the presentationml type for a .pptx download, with a filename that ends in .pptx. Do not add a charset. If you render slides to images for a web preview, each image has its own type, image/png or image/jpeg, on its own URL. The deck download keeps the presentation type. Do not serve the ZIP of slides as application/zip or a browser will unpack it and the user will see XML. The file on disk is still .pptx. Once the response exists, a client trusts application/vnd.openxmlformats-officedocument.presentationml.presentation, not the filename. Cache a static deck like any other download. A deck generated per viewer, with their name on the title slide, is private. Cache-Control: private. A shared cache plus this type is how one person's slides appear for the next request.
Content-Type for .pptx
Send application/vnd.openxmlformats-officedocument.presentationml.presentation and do not add a charset parameter. The body is binary. A charset tells a text decoder to reinterpret bytes that are not text, which corrupts a download and does not help a browser sniff the format.
Content-TypeContent-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation
nginx, Apache, and Express
These snippets map .pptx to application/vnd.openxmlformats-officedocument.presentationml.presentation. nginx reads the types block when it picks a type from the URL's extension. A location that sets default_type, or an application that sets the header itself, overrides that map. Apache AddType applies in the directory context where you put it. The Express static example writes the header for files ending in .pptx so a stale mime database in the framework cannot disagree with the type on this page.
nginx# /etc/nginx/mime.types, inside the types { } block
application/vnd.openxmlformats-officedocument.presentationml.presentation pptx;
ApacheAddType application/vnd.openxmlformats-officedocument.presentationml.presentation .pptx
Expressimport express from "express";
const app = express();
app.use(express.static("public", {
setHeaders(res, filePath) {
if (filePath.endsWith(".pptx")) {
res.setHeader("Content-Type", "application/vnd.openxmlformats-officedocument.presentationml.presentation");
}
},
}));
Pitfalls for application/vnd.openxmlformats-officedocument.presentationml.presentation
Pitfalls that show up for application/vnd.openxmlformats-officedocument.presentationml.presentation, and not for a neighboring type with a similar extension: Embedded fonts and media make the file large and make the license of the font relevant. The type does not grant a license. Another trap is a generated deck whose relationship part is missing, so PowerPoint says the file is corrupt. Another is a macro-enabled .pptm labeled as a plain presentation. The macro type is application/vnd.ms-powerpoint.presentation.macroEnabled.12. Another is an HTML table someone printed to 'PowerPoint' by renaming the file. Check for PK and ppt/presentation.xml.
- The type string is application/vnd.openxmlformats-officedocument.presentationml.presentation.
- application/zip will cause an unzip rather than a slideshow.
- A PDF rendition is application/pdf on a different URL.
- Images inside the package are not image responses until you extract them.
Frequently asked questions
What type does .pptx use?
application/vnd.openxmlformats-officedocument.presentationml.presentation.
Does it start with PK?
Yes. It is a ZIP package. The specific type tells clients to open a presentation, not an archive tool.
Is .ppt the same type?
No. The old binary format is a different file. Do not send the Open XML type for it.
Where do preview images go?
On their own URLs with an image type. The .pptx response stays the presentation type.