0

私の Web サイトには、ユーザーがアルバムを作成して写真をより適切に整理できる機能があります。新しい写真をアップロードすることも、すでにアップロードした写真から選択することもできます。私のPHPには、アップロードしたファイルを通過するコードがあります。新しいファイルをアップロードした場合です。それはうまく機能しますが、実際に新しい写真をアップロードするときにのみ機能させたい. 現在、アップロード済みの古い写真を選択した場合でも実行されます。複数の写真をアップロードできるように、HTML5 の「複数」属性を使用しています。PHP で、写真をアップロードするときにのみこのコードを実行する条件付き if ステートメントを作成するにはどうすればよいですか?

foreach ($_FILES['uploads']['name'] as $key => $file) {
   $time= time();
   $target= UPLOADPATH . $time . $file;
   move_uploaded_file($_FILES['uploads']['tmp_name'][$key], $target);
}

私は使用してみました:

if ($_FILES['uploads']['size'] != 0)
if ($_FILES != 0)
if ($_FILES['upload']['name'] !=0)

しかし、これまでのところ成功していません。私に何ができる?私は何を間違っていますか?

ありがとう

アップデート

$_FILES 配列の最初の要素の値に変数を設定することになりました。

そのようです:

$file_test= $_FILES['uploads']['size']['0'];

次に、テスト条件で使用しました。

($file_test != 0) { 
    // run the code;
}

みんな助けてくれてありがとう!!

4

3 に答える 3

2

アップロード済みの写真はどこにでも保存できると思いますが、getimagesize()機能(PHPマニュアル)を組み合わせて、アップロードしたファイルが画像かどうかを確認できます。md5_file()次に、関数(PHPマニュアル)を使用してアップロードされたファイルのMD5ハッシュを、保存されているファイルと比較します。それらがデータベースに保存されている場合、各ファイルのMD5をそれ自体のフィールドに直接保存するとパフォーマンスが向上する可能性があるため、データベースに既存のMD5ハッシュを簡単に照会できます。

お役に立てれば。

于 2012-10-19T18:58:17.230 に答える
1

まず、この関数を使用して$_FILES配列を再配置する必要があります

function rearrange( $arr ){
        foreach($arr as $key => $items){
            foreach($items as $i => $val){
                $array[$i][$key] = $val;
            }
        }
        return $array;
}

$files = rearrange($_FILES['uploads']);

//Then do the foreach loop upload

if(!empty($files))
{

    foreach ($files as $file) {
     // Check the file size inside the foreach loop
     if($file['size'] > 0)
     {
       $time= time();
       $target= UPLOADPATH . $time . $file['name'];
       move_uploaded_file($file['tmp_name'], $target);
     }
    }

}
于 2012-10-19T19:19:26.530 に答える
0
if(!empty($_FILES)){
    // you've got files?!?!
}

ここで幸運なことに、あなたの質問を本当に理解していません。

于 2012-10-19T18:52:20.780 に答える