Tutorial :Getting Mime-Types Over FTP In PHP



Question:

I'm writing an object in PHP that displays files on an FTP server. I am using PHP's built in FTP functions to retrieve most of the details I need (filename, size, last modified, etc.). However, there are no functions to get the mime-type of a file on the server. I have tried two different methods that work, but I'm having some issues.

Using fileinfo as follows takes 34 seconds to get the mime types of 10 files:

$finfo = new finfo(FILEINFO_MIME);  $mime_type = $finfo->file('ftp://username:password@host/path/file');  

Using mime_content_type() to do the same thing only takes 6 seconds:

$mime_type = mime_content_type('ftp://username:password@host/path/file');  

There are two issues here that I am looking for some help with. The first is security. Using either method transmits the login credentials plain text (of course FTP is insecure by nature, but this just makes it worse). The second issue is more of a best practice. Obviously mime_content_type() is the best of these two methods because it performs so much better, but it's deprecated. Is there a better, and potentially more secure, way of doing this? I can't install anything on the FTP server as this is intended to be used on anybodies FTP server that wishes to use it, so using a web service is out of the question.

Thanks in advance, ~ James Armes


Solution:1

The reason for the delay is that you need to read the magic byte of each file and use your server's magic file to determine what type is it.

So you are opening a transfer in FTP and reading that info, which isn't that fast in FTP.


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »