MIME-type of files queries - html

I'm doing a computing assignment, and I read this passage and had no clue. I don't get the full picture behind what MIME-type are...
"Note that filelename extensions are not the same as file types. Some filesles may end in .html or .htm but
the header indicates that the MIME-type is text/plain. On the other hand, a file may have an extension
.txt - or no extension - but have a MIME-type of text/html. The MIME-type defines the true type
of the file."
What do you mean by the MIME-type defines the true type of file?
Thank you so much!

I can give a self-learning experience
in windows open Registry Editor
Start -> Run -> regedit
Expand HKEY_CLASSES_ROOT
choose any extension you want say (.pdf)
you can understand how is it related and how it is treated
Again expand .pdf, you can see through which application it is usually processed
this makes a perfect learning experience of various MIME types and its content type and which application it is as default processed

MIME type is not only determined by the ending of a file, it also refers to the content in the file i.e. a python script s.py has MIME type text/x-python, while an empty file named s.py has inode/x-empty on a linux system
In linux use file --mime-type FILE_NAME command
How can I find out a file's MIME type (Content-Type)?

MIME types are just a way to identify the type of a file. Typically, there are two ways to figure out what the type of a file is:
Look at the file extension. For example, a pdf is usually saved as file.pdf ending with the extension pdf. This is a hint that the type of the file is pdf file. However, you can change the name of the file and simply change its extension to something else. So, the name of a file does not necessarily have to indicate its type
Look at the contents of the file and try to guess based on how its arranged in binary.
Most binary files have very specific representation inside a file. For example, if you open a pdf file in a notepad (or any text editing program), you will find that it starts with %PDF-. Followed by some numbers and potentially weird characters. This tells you that this is a pdf type.
Why is this useful? Files are simply saved as blocks of binary data. However, certain files can only be opened by certain programs (for example, music files can't be "opened" by text editors, it can only be played with a music player). By figuring out the MIME type of a file, you can understand how to interpret the data in the file (for example, text, image, video, audio are common mime types). Then, you can use the correct software to use the file.

Related

How can I add an upload filetype to mediawiki?

I would like to be able to upload .2h files to mediawiki. I think it is version 1.310-alpha
I added '2h' to wgFileExtensions which almost works.
It now complains with:
File extension ".2h" does not match the detected MIME type of the file (application/sla).
The file is binary, so I assume I need to somehow allow:
application/octet-stream
Make a copy of the includes/libs/mime/mime.types file, add .2h to the line starting with application/sla, point $wgMimeTypeFile to that file.
(Or make sure the mime detector does not detect .2h files as application/sla.)

Online Doc Viewer

I have a file hosted on AWS Linux AMI. The link is http://54.179.188.146/a/a.docx I can visit the link and download the file.
I am trying to use Microsoft Online Doc Viewer to view the Word File online at this link https://view.officeapps.live.com/op/view.aspx?src=http://54.179.188.146/a/a.docx but it returns a page stating "An error occurred We're sorry, but for some reason we can't open this for you."
I had chmod the file to 775 but it still cannot view.
I had uploaded to another server and it is working. May I know what is wrong? Is it a server configuartion issue? Please advise.
Thanks.
This is Old but giving some more pointers to the new visitors , i am posting the consolidated answer for the root cause of the "We’re sorry, but for some reason we can’t open this for you" error in https://view.officeapps.live.com/op/view.aspx?src=
If you see the error, "We’re sorry, but for some reason we can’t open this for you," it means the document could not be found or could not be displayed. Likely reasons include:
There’s no document to be found at the URL you provided. Make sure
you provide the correct URL.
The document is too large. Word and PowerPoint documents must be less
than 10 megabytes; Excel must be less than five megabytes.
The document was not saved in a format that is supported for opening
in a web browser. Try saving your document in one of the following
formats:
Word: docx, docm, dotm, dotx
Excel: xlsx, xlsb, xls, xlsm
PowerPoint: pptx, ppsx, ppt, pps, pptm, potm, ppam, potx, ppsm
You need to sign in or provide a password to open the document. Make
the document publically available to view.
The document’s file name contains invalid characters. Try encoding
the file name when you type the document’s URL, or rename the file to
use only letters and numbers. For example, to encode a URL that
includes an ampersand (i.e. &), you would type %26 for the ampersand
character. For more information about URL encoding, also known as
percent encoding.
more info can be found here
The value after "src=" should be URL-encoded. See details on MS Page
You should checked all reasons from here
There’s no document to be found at the URL you provided. Make sure you provide the correct URL.
Try to open file from browser.
Make sure you don't try to send on preview service path of the file from your local host. To which, obviously, there is no access from the Internet.
Path to file must be http:// or https://
If path to your file start with https:// make sure your site have necessary secure certificate.
Domain name matters.
Will not be open in preview service
http://185.231.70.200/vacuumcleanerprocedure.doc
Will be open in preview service
http://domainname.com/vacuumcleanerprocedure.doc
The document is too large. Word and PowerPoint documents must be less than 10 megabytes; Excel must be less than five megabytes.
Try different files with different Microsoft file types.
The document was not saved in a format that is supported for opening in a web browser. Try saving your document in one of the following
formats: Word: docx, dotx Excel: xlsx, xlsb, xls, xlsm PowerPoint:
pptx, ppsx, ppt, pps, potx, ppsm
Try different files with different Microsoft file types.
You need to sign in or provide a password to open the document. Make the document publicly available to view.
File permission and folders mode should be 775.
Check if in .htaccess file of your apache server there are allow access to ms-office files.
Check if your file available from internet. Try to open file from browser. If you see “You don't have permission to access filename on this server” see answer here
The document’s file name contains invalid characters. Try encoding the file name when you type the document’s URL, or rename the file to
use only letters and numbers. For example, to encode a URL that
includes an ampersand (&), you would type %26 for the ampersand
character. For more information about URL encoding, also known as
percent encoding, see Percent-encoding on Wikipedia.
The value after "src=" should be URL-encoded. When you place the link on the preview service, it already encodes it for preview. Additionally, I may encode the link here, but the result will be the same.

Download dotfile using html5 download preserving name

I have a directory structure, containing a list of directories and files.
I want to give user an option of downloading a file. For downloading, I'm using HTML5 download attribute. It works perfectly.
But the directory structure i have can have dotfiles too, examples: .babelrc, .gitignore, .eslintrc, etc.
When I use the same technique to download such files, file is being downloaded with the same content but the file is no longer a dotfile. After downloading, let's say .gitignore, the file becomes gitignore.txt.
I'm using this for my project github-plus - Chrome extension to display size of each file, download link and an option of copying it's contents.
Any help would be highly appreciated.
I'm using this format:
Download
JSFIDDLE DEMO
Quoting HTML5 specification on downloading resources with the download attribute, about file type/extension :
If the claimed type is known, then alter filename to add an extension corresponding to claimed type.
Otherwise, if named type is known to be potentially dangerous (e.g. it will be treated by the platform conventions as a native executable, shell script, HTML application, or executable-macro-capable document) then optionally alter filename to add a known-safe extension (e.g. ".txt").
It seems that:
the part of the algorithm that finally choses the filename is platform-dependent
if the extension is not recognised, as in the case of dotfiles, the browser will try to determine it by using the file MIME type
dotfiles might be considered anyway as potentially harmful as they are hidden files on various platforms. This seems to be what happens in your case, with the initial dot being removed and the .txt extension appended.

Provide a description for a file dialog

In HTML5, I can get an open file dialog with the following code:
<input id="fileOpenDialog" type="file" accept=".proj" />
(note, .abc is my own project format)
When Google Chrome opens the dialog, it shows it like this:
Is there a way to provide an additional description for the file type? I would like it to show something like "ABC Project File (.proj)".
Although I like the suggestion, there is no attribute in the input type=file that supports this.
File extensions are kept on the client, and those values are shown in the dropdown.
You can find all supported attributes in the specification.
No this isn't possible.
That said, however, your upload form itself should clearly specify which type of file is being requested from the user; the user should know what file they are expected to load before selecting to chose a file.
Whilst on this subject, it's also worth noting that the HTML5 Candidate Recommendation specifies the following warning:
Warning: Extensions tend to be ambiguous (e.g. there are an untold number of formats that use the ".dat" extension, and users can typically quite easily rename their files to have a ".doc" extension even if they are not Microsoft Word documents), and MIME types tend to be unreliable (e.g. many formats have no formally registered types, and many formats are in practice labeled using a number of different MIME types). Authors are reminded that, as usual, data received from a client should be treated with caution, as it may not be in an expected format even if the user is not hostile and the user agent fully obeyed the accept attribute's requirements.
Even if you were somehow able to rename your desired file type to "ABC Project File (.proj)", the user would still be able to upload any other file with the .proj extension.

Create hyperlink to CSV File and use application to open file

I have a link which points to a CSV file. When clicked, it opens the file in the browser. I would like to use a different application (i.e. Excel, Open Office, Lotus) to open the file as a spreadsheet. Is it possible to include headers or something to make this happen? Thanks
Link:
<a target="_blank" href="contacts.csv">Contacts</a>
Browser Displays:
First Name,Last Name,Title,Email,Company,Address,City,State,Zipcode,Direct Phone,Mobile Phone,Direct Fax,Company Phone,Company Fax
John,Doe,Estimator,johnd#acme.com,Acme Co.,112 Main St,Gothem,IL,,(847) 555-1122,,,,
Jane,Doe,Engineer,,Ace Industries,,Seattle,WA,,,,,(206) 555-1234,
You will need to set the content type header on whatever generates the csv file.
See: Setting mime type for excel document
For the available headers.
You don't say which language you're using to generate the csv data, or whether it's simply a flat file you're linking to. While most languages will provide the means to set headers on the fly, if you are using static flat files, you may need to set your htaccess (assuming apache is your web server). There are instructions for that case here: http://htaccess.wordpress.com/2008/07/16/sending-correct-content-type-headers-with-htaccess/
The answer that #stakolee links to is really more specific to opening a file in Excel. If you want to be correct and widely compatible, the mime type should be for CSV, not Excel.
The correct mime type is text/csv. Excel will likely be the application associated with this type, so you'll get the behavior you want.
What MIME type should I use for CSV?
You cam also set Content-Disposition to help things along.
Content-Disposition: attachment; filename="filename.csv"
What to set as mimetype for CSV files to open in spreadsheet applications
If you want backup options, you can set multiple mime types.
text/csv, application/csv, application/excel, application/vnd.ms-excel, application/vnd.msexcel
Filepicker does not accept mimetype 'text/csv' on windows
RFC 4180 says you can respond with text/csv; header=present or header=absent to indicate if the files contains column headers.
Proper syntax for optional header parameter for text/csv mimetype?