开发者

php photo uploader

I have a very simple photo uploader which needs some bringing up to speed please

Firstly an echo appears when the page loads even tho there is nothing in the box?

if($_POST['upload']) {
     if($_FILES['image']['name'] == "")
     {
         #there's no file name return an error
         echo "\n<b>Please select a file to upload!\n</b>";
         exit;
     }
     #we have a filename, continue
}

#directory to upload to
$uploads = '/hom开发者_如何学JAVAe/habbonow/public_html/other/quacked/photos';
$usruploads = 'photos';

#allowed file types
$type_array = array('image/gif','image/pjpeg','image/x-png');

if(!in_array($_FILES['image']['type'], $type_array))
{
    #the type of the file is not in the list we want to allow
    echo "\n<b>That file type is not allowed!\n</b>";
    exit;
}

the page output shows the uploading box but also echos "That file type is not allowed!" even when i haven't clicked the button.

secondly what is the mime type for jpg please, as I have jpeg and pjpeg.

thanks, any help appreciated.



I would also suggest putting everything in the POST block, otherwise it will be evaluated when the page is loaded no matter what.

For mimetypes there is a method image_type_to_mime_type which lets you pass in a constant representing a given filetype and returns the proper mimetype for it, e.g.:

$type_array = array(image_type_to_mime_type(), image_type_to_mime_type(IMAGETYPE_GIF), image_type_to_mime_type(IMAGETYPE_PNG), 'image/pjpeg');

(Since pjpeg doesn't have it's own constant we can just add it manually)


If you haven't submitted the form i think that the !inarray call could very likely return false because $_FILES['images'] wouldn't exist.

For this i would be tempted to put the whole lot in the first if statement:

if($_POST['upload']) {
     if($_FILES['image']['name'] == "")
     {
         #there's no file name return an error
         echo "\n<b>Please select a file to upload!\n</b>";
         exit;
     }
     #we have a filename, continue


     #directory to upload to
     $uploads = '/home/habbonow/public_html/other/quacked/photos';
     $usruploads = 'photos';

     #allowed file types
     $type_array = array('image/gif','image/pjpeg','image/x-png');

     if(!in_array($_FILES['image']['type'], $type_array))
     {
         #the type of the file is not in the list we want to allow
         echo "\n<b>That file type is not allowed!\n</b>";
         exit;
     }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜