0

私は非常にシンプルな写真アップローダーを持っていますが、速度を上げる必要があります

最初に、ボックスに何も入っていなくてもページが読み込まれるとエコーが表示されますか?

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;
}

ページ出力にはアップロード ボックスが表示されますが、「そのファイル タイプは許可されていません!」というメッセージも表示されます。ボタンをクリックしていなくても。

第二に、私は jpeg と pjpeg を持っているので、jpg の MIME タイプを教えてください。

ありがとう、助けていただければ幸いです。


4

2 に答える 2

1

また、すべてを POST ブロックに入れることをお勧めします。そうしないと、ページが読み込まれたときに評価されます。

mimetypes には、指定されたファイルタイプを表す定数を渡すことができるメソッドimage_type_to_mime_typeがあり、適切な mimetype を返します。例:

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

(pjpeg には独自の定数がないため、手動で追加できます)

于 2011-04-16T11:38:04.853 に答える
0

フォームを送信していない場合、$_FILES['images'] が存在しないため、!inarray 呼び出しが false を返す可能性が非常に高いと思います。

このために、最初のifステートメントにすべてを入れたくなるでしょう:

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;
     }
}
于 2011-04-16T11:32:06.053 に答える