Results 1 to 10 of 10

Thread: Need help getting finfo_file() script to work.

  1. #1
    Join Date
    Jan 2007
    Location
    Davenport, Iowa
    Posts
    2,385
    Thanks
    100
    Thanked 113 Times in 111 Posts

    Default Need help getting finfo_file() script to work.

    four questions:

    1. what is Fileinfo?
    2. how can I tell if I have it installed?
    3. can you give an example script so I can test it out?
    4. why would you want to use it?

    If anyone knows the answer to any one of these I would love to hear it. You don't have to answer all of them in one post if you don't want to.

  2. #2
    Join Date
    Jan 2008
    Posts
    4,168
    Thanks
    28
    Thanked 628 Times in 624 Posts
    Blog Entries
    1

    Default

    Take a look at PHP.nets FileInfo. Here's an intro to fileinfo():
    http://us3.php.net/manual/en/intro.fileinfo.php. Take a look at php.net before asking about the function itself.
    Jeremy | jfein.net

  3. #3
    Join Date
    Jan 2007
    Location
    Davenport, Iowa
    Posts
    2,385
    Thanks
    100
    Thanked 113 Times in 111 Posts

    Default

    I did, that is why I am asking

    I always go there first and search via google next before posting here.

  4. #4
    Join Date
    Jan 2008
    Posts
    4,168
    Thanks
    28
    Thanked 628 Times in 624 Posts
    Blog Entries
    1

    Default

    Looking at the intro. It seems like it trys to guess the file type by looking for a certain magic byte sequence. Take a look at the fileinfo() series of functions:
    http://us3.php.net/manual/en/ref.fileinfo.php
    Jeremy | jfein.net

  5. #5
    Join Date
    Jan 2007
    Location
    Davenport, Iowa
    Posts
    2,385
    Thanks
    100
    Thanked 113 Times in 111 Posts

    Default

    Did that... I could not get their examples to work and this is an area of php I am quite unfamiliar with. Nothing is listed in the forums here that is of much help either, that is why I am asking for help here...

    More specifically I was wanting to know more about the finfo_file function. I did not see anything in the instructions about detecting whether it is already installed. I was not able to find what I was looking for after looking through the entitre (but short) section on fileinfo about how to detect if it is installed. Maybe I was looking in the wrong place?
    Last edited by james438; 08-25-2008 at 08:00 PM.

  6. #6
    Join Date
    Jan 2008
    Posts
    4,168
    Thanks
    28
    Thanked 628 Times in 624 Posts
    Blog Entries
    1

    Default

    You've gotta install it off PECL.
    Jeremy | jfein.net

  7. #7
    Join Date
    Jan 2007
    Location
    Davenport, Iowa
    Posts
    2,385
    Thanks
    100
    Thanked 113 Times in 111 Posts

    Default

    I have already looked at the sites you are trying to direct me to long before you mentioned them, which is why I asked about them in this forum. I try to find the answer first myself before submitting a post.

    I just want to know if it is installed not how to install it as I said in my first post and some explanation as to what the people at php.net are talking about when they describe how it works. Some things on php.net are easier to understand than others and this one is of medium difficulty, but the examples I have tried do not seem to be working which is one reason I want to know if it is already installed or not. My best guess is that
    Code:
    <?php 
    phpinfo();
    ?>
    might have the info I am looking for, but I am not sure what it would be listed under and I did use phpinfo() to see if I could find something under file or fileinfo or PCEL, but with no luck. This does not mean that it is not installed.

    I have tried
    Code:
    <?php
    $finfo = finfo_open(FILEINFO_MIME); // return mime type ala mimetype extension
    foreach (glob("*") as $filename) {
        echo finfo_file($finfo, $filename) . "\n";
    }
    finfo_close($finfo);
    ?>
    and have tried to adapt it to my own site, but without success. Even if I were to get it to work I am not sure as to the purpose it would serve. From what I have read the last day or two from php.net this function seems to be a buggy function of php and bugs have been filed with php, but I would like to see for myself whether finfo_file() works or not by testing a working example that someone here could post.

    So,

    1. what is fileinfo? It is a way to guess the content type of a file. Is this the mime type? What does guess mean? what are these magic byte sequences that are mentioned?
    2. how can I tell if I have it installed? I do not want to install it, just see if it is installed.
    3. can you give an example script so I can test it out? The examples I have tried come up with errors for answers. Am I not adapting the code properly to my site or is it simply not installed.
    4. why would you want to use it? Even if it is not installed on my server I am rather curious as to its purpose. It would seem to me that any almost any file editor script would be able to detect this anyway.

    I have already looked into these things before posting here, which is the reason I posted here. I could not discover the answer to on my own after visiting php.net or googling for the answer.
    Last edited by james438; 08-25-2008 at 08:55 PM.

  8. #8
    Join Date
    Aug 2007
    Location
    Ohio
    Posts
    79
    Thanks
    0
    Thanked 15 Times in 15 Posts

    Default

    1. fileinfo is a PHP extension. Yes, the content type is another phrase for mime type. It is impossible to discern the intentions of whoever created the file. All we can do is examine the file and see which mime type it most closely resembles. It could be that the mime type is unknown.

    2. Use the phpinfo() function to get a print out of your PHP configuration. Then, search the page for "fileinfo." If there is no module for fileinfo (doesn't matter if there is no data under it), then it's not installed. I'm talking about the ones in <h2> tags. Here's an example on my server.

    3. It would be more helpful if you supplied the errors rather than ask for new examples. The examples on the php manual are correct, so it is likely the extension is just not installed, or the path to the magic database file is incorrect.

    4. It's only purpose is to guess the mime type of a file. I'm not sure what you mean "any file editor script." It is likely that any PHP application that determines mime type uses this extension.

  9. The Following User Says Thank You to jackbenimble4 For This Useful Post:

    james438 (08-26-2008)

  10. #9
    Join Date
    Jan 2007
    Location
    Davenport, Iowa
    Posts
    2,385
    Thanks
    100
    Thanked 113 Times in 111 Posts

    Default

    That was quite helpful jackbenimble4 It would appear after looking at my phpinfo and not finding any mention of fileinfo installed on my hosted server that fileinfo is not installed. I'm not really interested in stalling anything to my php at this point so all of my questions have been answered.

    It is kind of a moot point now, but the code I used was
    PHP Code:
    <?php
    $filename
    ="/images/alita3.jpg";
    $finfo finfo_open(FILEINFO_MIME); // return mime type ala mimetype extension
    foreach (glob("*") as $filename) {
        echo 
    finfo_file($finfo$filename) . "\n";
    }
    finfo_close($finfo);
    ?>
    and the error I received was
    Code:
    Fatal error: Call to undefined function: finfo_open() in /home/content/a/n/i/animeviews/html/test.php on line 3
    I was under the impression that you could determine the content type of a file simply by looking at the extension, but it appears that this is not the case. When a file editor is used the extensions are displayed, but if finfo_type can determine the contents of the file using a completely different method then using a file editor or other simple folder scanning script is, well, something different.

    Again, thanks for the info

  11. #10
    Join Date
    Aug 2007
    Location
    Ohio
    Posts
    79
    Thanks
    0
    Thanked 15 Times in 15 Posts

    Default

    No problem.

    The problem with looking at the extension, is that you could take an executable for example (.exe) and rename it as a png image (.png). It could potentially be exploited to somehow run the executable on the server.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •