0

私はこれを正しく機能させることができないようです、私はそれを持っていると思います、そして他の何かは機能しません。見てください...

複数のファイルをアップロードしようとしています。これが私のphpです。ファイルに問題があると常に表示され、削除is_uploaded_fileしても機能しません。

include('image.php');
$image = new SimpleImage();

foreach(array_keys($_FILES['ref']['name']) as $i) { 

    if (is_uploaded_file($_FILES['ref']['name'][$i])) {
        $time = date("fYhis");
        $destination="./../img/treatments/" .$pageid. "/refimgs";
        $tdestination="./../img/treatments/" .$pageid. "/refimgs/thumbs";
        $image->load($_FILES['ref']['name'][$i]);
        $image->save($destination . '/' .$time . $i . '.jpg');    
        $image->resizeToWidth(140); 
        $image->save($tdestination . '/' .$time . $i . '.jpg');

    }else{ echo "Possible file upload attack: ";
        echo "filename '". $_FILES['ref']['name'][$i] . "'.";
    }
}
4

1 に答える 1

1

関数で使用する必要$_FILES['ref']['tmp_name']がありis_uploaded_fileます。更新されたコード行は次のようになります。

include('image.php');
$image = new SimpleImage();
foreach(array_keys($_FILES['ref']['name']) as $i) { 

    if (is_uploaded_file($_FILES['ref']['tmp_name'][$i])) {
        $time = date("fYhis");
        $destination="./../img/treatments/" .$pageid. "/refimgs";
        $tdestination="./../img/treatments/" .$pageid. "/refimgs/thumbs";
        $image->load($_FILES['ref']['name'][$i]);
        $image->save($destination . '/' .$time . $i . '.jpg');      
        $image->resizeToWidth(140);   
        $image->save($tdestination . '/' .$time . $i . '.jpg');

   }else{ echo "Possible file upload attack: ";
       echo "filename '". $_FILES['ref']['name'][$i] . "'.";
   }
}

注:nameクライアントマシンのファイルはサーバーでは無効であり、tmp_name代わりに使用する必要があります。これが問題の解決に役立つことを願っています。

于 2011-12-20T01:28:23.813 に答える