Jump to content

Archived

This topic is now archived and is closed to further replies.

whisperstream

$FILES[$fv]['name'] is empty but NOT $FILES[$fv]['tmp_name']

Recommended Posts

So I have a strange problem and I'm not quite sure where to look.

When I upload a file, the $_FILES array is filled up correctly except for the 'name' element which is always set to a blank array.  Everything else is set correctly and I have no problems reading the uploaded file using the tmp_name file name.  The problem is that I need to determine the file type and so need the original file extension. using print_r this is what I get:

Array
(
    [fileData] => Array
        (
            [name] => Array
                (
                )

            [type] => text/xml
            [tmp_name] => C:\PROGRA~1\EASYPH~1\\tmp\php29F.tmp
            [error] => 0
            [size] => 1222
        )

)

Ok so I get the type in the php array, but research tells me that you can't always rely on that.

I should also say that I'm using EASYPHP windows with PHP version 4.3.10.  Do I need to set a flag to get this info, or is a windows implementation bug or something else?

Any help would be greatly appreciated.

Share this post


Link to post
Share on other sites
What does your form look like?

Ken

Share this post


Link to post
Share on other sites
I think my form is ok, it's not the ubiquitous enctype problem (I hope!)

<form name="galleryForm" method="post" action="uploadPage.php" enctype="multipart/form-data">
<table>
          <tr>
            <td>Upload File :</td>
            <td>
              <input type="file" name="fileData">
            </td>
          </tr>
</table>
</form>

Share this post


Link to post
Share on other sites
I don't see a submit button in your form. How is it being submitted?

Ken

Share this post


Link to post
Share on other sites
sorry chopped that part off, here's the submit button
<form name="galleryForm" method="post" action="uploadPage.php" enctype="multipart/form-data">
<table>
          <tr>
            <td>Upload File :</td>
            <td>
              <input type="file" name="fileData">
            </td>

          </tr>
          <tr><td><input type="image" src="images/icons/save.gif" width="19" height="19" border="0" name="image"></td></tr>
</table>
</form>

Share this post


Link to post
Share on other sites
Try adding a submit button instead. If you need it to be that picture, use this code instead: [code]<button type='submit' style='border: 0px; padding; 0px;'><img src='images/icons/save.gif' width='19' height='19' border='0'></button>[/code]

Share this post


Link to post
Share on other sites
just tried that now, makes no difference, file will upload fine, just name part is blanked, I'll try with a different web host and see if I get a different result to the one i'm getting on my local machine

Share this post


Link to post
Share on other sites
Found it, bad coding......I thought the globals were read only, but earlier in the code due to misuse of preg_match was setting $_FILEs['fileData']['name'] to it result matches.

Thanks for all the suggestion, the button syntax was useful too, will now adopt :)

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.