0

HTMLは次のとおりです。

<h1>Upload Custom Logo</h1>
<form action="settings.php" enctype="multipart/form-data" method="post">
<input type="file" name="Logo" />
<input type="submit" value="Upload" name="logoUpload" />
</form>

PHPは次のとおりです。

<?php /* Handle Logo Upload */
if($_POST['logoUpload']) {

$target_path = "uploads/";
$Logo = $_FILES['Logo']['name'];

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

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo '<div class="statusUpdate">The file '.  basename( $_FILES['Logo']['name']). 
        ' has been uploaded</div>';
    }   

} else{
    echo '<div class="statusUpdate">There was an error uploading the file to: '.$target_path.', please try again!  Error Code was: '.$_FILES['Logo']['error'].'</div>';
}

}
?>

それは常にそのコードの「else」ステートメントに行きます、私はこのphpファイルが777ファイルパーミッションに設定されているのと同じディレクトリにアップロードフォルダを持っています。テストアップロードしている画像のサイズは10KB未満です。ただし、move_uploaded_file()は常に失敗し、elseステートメントで作成されたカスタムエラーメッセージを除いて、エラーメッセージを返しません。

4

2 に答える 2

3

You're referring to the file in the $_FILES array by two different names -
$Logo = $_FILES['Logo']['name'];
move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)

Which one is it? Logo or uploadedfile ?

You're probably referencing an array index which doesn't exist.

于 2012-04-09T22:28:59.010 に答える
1

考えられる理由:

  • ファイルのアップロードが何らかの理由で失敗しました。
  • ファイルをターゲットパスに移動する権限がありません。

PHP.NETが言うように:

filenameが有効なアップロードファイルでない場合、アクションは発生せず、move_uploaded_file()はFALSEを返します。

filenameが有効なアップロードファイルであるが、何らかの理由で移動できない場合、アクションは発生せず、move_uploaded_file()はFALSEを返します。さらに、警告が発行されます。

参照: http: //php.net/manual/en/function.move-uploaded-file.php

于 2012-04-09T22:27:28.263 に答える