1

次のスクリプトを使用して、単純なファイルのアップロードを行っています。

$errors = '';
$target_path = "[PATH HERE]";

$target_path = $target_path . basename($_FILES['uploadFile']['name']); 

if(move_uploaded_file($_FILES['uploadFile']['tmp_name'], $target_path)) {
     $errors = "The file ".  basename( $_FILES['uploadFile']['name']). " has been uploaded";
} else{
     $errors = "There was an error uploading the file, please try again! Type: " . $_FILES['uploadFile']['type'];
    }

なんらかの理由で、ファイルのアップロード中にエラーが発生し、ファイルの種類が表示されません。拡張子のないファイルの名前のみを取得するようです(つまり、「test.pdf」ではなく「test」)。簡単なことだと思いますが、何が間違っていますか?

4

2 に答える 2

0

おそらく、パスの入力が間違っている(スラッシュで終わる)か、phpにディレクトリへの書き込み権限がありません。

<?php 
error_reporting(E_ALL); // Show some errors

$target_path = "/var/www/somesite.com/uploads/"; // Would require a ending slash 

$target_path = $target_path.basename($_FILES['uploadFile']['name']);

if(move_uploaded_file($_FILES['uploadFile']['tmp_name'], $target_path)) {
    $errors = "The file ".  basename( $_FILES['uploadFile']['name']). " has been uploaded";
} else{
    $errors = "There was an error uploading the file, please try again! Type: " . $_FILES['uploadFile']['type'];
}

?>
于 2012-04-11T18:40:00.367 に答える
0

files配列のエラー要素を確認すると、おそらく0以外の値であることがわかります。何も問題がなければ、エラーは0になるはずです。それ以外の場合は、エラーで保存された値をPHPのドキュメントと比較して、何が問題だったかを判断します。

于 2012-04-11T18:38:04.673 に答える