0

重複の可能性:
空の配列を返す PHP 経由の画像アップロード

サーバーに画像/ファイルを正常にアップロードできません。php は次のとおりです。

//This is the directory where images will be saved
$uploadDir = "./";
$uploadFile = $uploadDir . basename( $_FILES['photo']['name']);

//Writes the photo to the server
if(move_uploaded_file($_FILES['photo']['tmp_name'], $uploadFile)){
    echo "The file has been uploaded successfully.";
} else {
    print_r($_FILES);
}

最終的なディレクトリにアップロードする前に機能を確保するために、このスクリプトが存在するディレクトリを選択しました。写真をアップロードしたいのですが、後でファイル拡張子を確認しますが、今のところ、少なくともアップロード機能が機能する必要があります。

フォームは次のとおりです。

<form id="imageUploadForm" name="imageForm" enctype="multipart/form-data" action="imageController.php" method="post">
<label for="photo" class="blogLabel">Upload an Image</label>
<input type="file" name="photo" id="imageUpload">
<input type="submit" name="submit" id="imageSubmit" class="btn btn-primary" value="Upload">
</form>

print_r($_FILES)戻り値:Array ( [photo] => Array ( [name] => imgres.jpeg [type] => image/jpeg [tmp_name] => /tmp/php1rqFUO [error] => 0 [size] => 15147 ) )

4

1 に答える 1

0

PHP には、そのディレクトリへの書き込み権限がありません。LAMP スタックで作業している場合は、そのディレクトリへの書き込みアクセスを全世界に与える必要があります。コマンドラインからこれは次のとおりです。

chmod -R 777 path/to/dir

気をつけて!実際には、スクリプトが存在するディレクトリとは別のディレクトリを使用する必要があります。スクリプトを実行できないディレクトリを選択して、誰かがスクリプトをサイトにアップロードしないようにしてから、サーバーへのフルアクセスでスクリプトを実行してください!

于 2012-08-02T21:35:40.790 に答える