0

なぜこれが機能しないのかわかりません。とても簡単なはずです。

upload.php:

$uploaddir = '/usr/share/nginx/www/pitfax/upload/'; 
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo "<p>";

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {   
    echo "File is valid, and was successfully uploaded.\n"; 
} 
else {
    echo "Upload failed"; 
}

echo "</p>"; 
echo '<pre>'; 
echo 'Here is some more debugging info:'; 
print_r($_FILES); print "</pre>";

フォームページ:

<form enctype="multipart/form-data" action="upload.php" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
    Send this file: <input name="userfile" type="file" />
    <input type="submit" value="Send File" />
</form>

エラー出力は次のとおりです。

Upload failed

Here is some more debugging info:Array (
    [userfile] => Array
        (
            [name] => test.pdf
            [type] => application/pdf
            [tmp_name] => /tmp/phptM0p4w
            [error] => 0
            [size] => 1287464
        )

)
  • Webサーバー:NginX
  • 権限upload.php:644
  • ディレクトリのアクセス許可upload:755
  • rootユーザーとのSSHでの作業。
  • 編集: upload_max_filesize = 2M
  • 編集: post_max_size = 8M

別物!アップロードが完了したら、アップロードしたファイルの絶対パスを取得したいと思います。(例/usr/share/nginx/www/pitfax/upload/test.pdf:)

4

1 に答える 1

1

$uploadfileの値がupload/test.pdfであるが、それを/usr/share/nginx/www/pitfax/upload/test.pdfにしたい場合は、それが問題になると思います。

このコードを試してください:

$uploadfile = '/usr/share/nginx/www/pitfax/upload/' . $_FILES['userfile']['name'];

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
  echo "File is valid, and was successfully uploaded.\n";
} else {
  print_r ($_FILES);
}

編集:コードのフォーマット。

于 2012-06-19T22:20:01.843 に答える