1

この質問は同様に数回尋ねられましたが、それらの答えは私が抱えている問題には当てはまりませんでした。私はそれらすべてをチェックしました。

基本的に、すべてのアヒルが並んでいるように感じても、関数 move_uploaded_file は毎回 false を返します。エラーはありません。false を返すだけです。

アップロードされているファイルを確認しましたが、エラーはありません。

権限の問題かもしれません。chmod(dir, 0777) を使用して、画像をアップロードするディレクトリを変更しようとしました。それがパーミッションの問題であった場合、これで修正されたかどうかはわかりません。編集 - ディレクトリの iswritable(dir) をチェックすると、書き込み可能と表示されます。

フォームに enctype="multipart/form-data" 属性が設定されています。

これは私のコードです:

    function uniqueName()
    {
    $target = dirname(__FILE__) . '/TestProject/';
    $uid = uniqid();
    $ext = pathinfo($_FILES['photo']['name'], PATHINFO_EXTENSION);

    $_FILES['photo']['name'] = $uid . "." . $ext;

    if(move_uploaded_file($_FILES['photo']['name'], $target . $_FILES['photo']['name']))
        echo("upload succeeded");
    else {
        echo("upload failed");
    }

    return $target . $_FILES['photo']['name'];
    } 

何か不足していますか?どんな助けでも大歓迎です。

4

2 に答える 2

2

これを修正しました。move_uploaded_files() の最初のパラメーターは、名前ではなく tmp_name を想定しています。

于 2013-02-02T18:48:15.420 に答える
1

まず、フォームが次のようになっていることを確認することを忘れることがあります。

<form id="myform" name="myform" action="#" method="post" enctype="multipart/form-data">

これの重要な部分は

enctype="multipart/form-data">

アップロードに関する限り、私は以下を使用し、毎回動作します:

if ($_FILES["fuImg"]["error"] > 0)
    {
    echo "Error: " . $_FILES["fuImg"]["error"] . "<br>";
    }
else
    {
       move_uploaded_file($_FILES["fuImg"]["tmp_name"], "../img/bands/" . $_FILES["fuImg"]["name"]);
    }
于 2013-02-02T17:28:26.600 に答える