16

私はゆっくりと PHP を学んでおり、他の開発者によって投稿された主題と解決策に関する一連の情報を見つけました。HTTPポスト経由でAndroidアプリケーションにファイルをPHPサーバーにアップロードさせようとしています。ただし、PHP でファイルに書き込もうとすると、サーバー側で何かが機能しません。

PHPコードは次のとおりです。

// Where the file is going to be placed
$target_path = "/var/www/media2net/uploads/uploads";

/* Add the original filename to our target path.
Result is "uploads/filename.extension" */
$target_path = $target_path . basename($_FILES['uploadedfile']['name']);

if (move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['uploadedfile']['name']) .
        " has been uploaded";
    chmod("uploads/" . basename($_FILES['uploadedfile']['name']), 755);
} else {
    echo "There was an error uploading the file, please try again!";
    echo "filename: " . basename( $_FILES['uploadedfile']['name']);
    echo " target_path: " .$target_path;
}

クライアント側でワイヤーシャークを調べて、http 投稿が正しく送信されていることを既に知っています。また、ファイルを書き込んでいるディレクトリに正しい権限があり、php セーフモードがオフに設定されていることを確認しました。

apache2 error.log ファイルからの出力は次のとおりです。

[Wed Dec 05 09:25:36 2012] [error] [client 74.14.162.250] PHP Warning:  
move_uploaded_file(): Unable to move '/tmp/phpVLOnn3' to  
'/var/www/media2net/uploads/downloaded_file.png' 
in /var/www/media2net/upload.php on line 9

この問題に関するヘルプや、これをトラブルシューティングするためのその他の方法を教えていただければ幸いです。

4

3 に答える 3

20

「chown」または「chmod」で所有者を変更して、/var/www/media2net/uploads/ のアップロード許可を変更します。

$ sudo chown apache:apache /var/www/media2net/uploads/
$ sudo chmod 755 /var/www/media2net/uploads/

また、downloaded_file.pngそのディレクトリに既に存在し、別のユーザーが所有している場合は、そのファイルの所有権も変更する必要があります。

$ sudo chown apache:apache /var/www/media2net/uploads/downloaded_file.png

このようにして、Apache によって正常に上書きされます。

于 2012-12-05T12:28:54.283 に答える
4

これで問題は解決しました:

$ sudo chown -R www-data:www-data /var/www/html/
于 2016-09-20T23:25:55.043 に答える