2017-02-21 27 views
1

私は以下のコードを実行すると、それはPHPで入力ファイル名を変更できないのはなぜですか?

言う "お知らせ:未定義のインデックス:CでuploadFile:\ xamppの\ htdocsに\ ImageTest \ processImage.phpライン17上の"

しかし、私は置き換えをファイルアップロードのすべてのインスタンスがfileToUploadで動作するようです。どうして?

processImage.php

<!DOCTYPE html> 
<html> 
<head> 
    <title> hello world</title> 
</head 
<body> 
    <?php 
     echo ' hi'; 

     $servername="localhost"; 
     $username="root"; 
     $password=""; 
     $dbname="db_ImageTest"; 

     $conn=new mysqli($servername, $username, $password, $dbname); 

     echo $_FILES["uploadFile"]["name"]; 

     /* 
     echo $image; 

     $image_name=$_FILES['image']['name']; 
     $image_size=getimagesize($_FILES['image']['tmp_name']); 

     if($image_size==FALSE){ 
      echo 'failed'; 
     } 
     $query="INSERT INTO mytable(image, name) VALUES(' {$image}', '{$image_name}') 
     */ 
    ?> 
</body> 
</html> 

のindex.php

<!DOCTYPE html> 
<html> 
<body> 

<form action="processImage.php" method="post" enctype="multipart/form-data"> 
    Select image to upload: 
    <input type="file" name="uploadFile" /> 
    <input type="submit" value="Upload Image" name="submit"/> 
</form> 

</body> 
</html> 
+0

HTMLファイルを読み込むと、フォームのファイルがアップロードされず、警告がスローされる理由にアクセスしようとしました。 'if($ _ POST){あなたのコードをここにエコー}}; –

+0

Canあなたはvar_dump($ _ POST、$ _FILES)の結果を投稿します。 –

+0

echo var_dump($ _ POST、$ _FILES); {["name"] => string(9)array(1){["submit"] =>文字列(12) "画像のアップロード"} array(1){["fileToUpload"] => array(5) "" "pupil.png" ["type"] =>文字列(9) "image/png" ["tmp_name"] =>文字列(24) "C:\ xampp \ tmp \ phpEC09.tmp" ["error"] = > int(0)["size"] => int(585)}} – user2350459

答えて

2

"お知らせ:未定義のインデックス:CでuploadFile:\ xamppの\ htdocsに\ ImageTest \ processImage.phpライン17上の"

ファイルが送信されなかったことを意味します。issetを使用してファイルが添付されているかどうかを確認することができます。そうでない場合は通知を送信します。

if (isset($_FILES['uploadFile'])) { 
    /** file is there, continue your uploading **/ 
    } 
+0

ええと、issetはuploadFileを添付しますか?変わったことは、私が変えるすべてが変数名であるとき、それはもはや付かないと思われることです。 – user2350459

+0

ファイルのアップロードでは、PHPがあなたが設定した名前を受け取るのを確認する必要はありません。つまり、あなたのHTMLファイルの入力がPHPで期待しているのと同じ 'name'を持つことを保証します。 – Ultrazz008

+0

すべてのuploadFileを取得してfileToUploadに置き換えたときに達成しようとしていたことはそうです。私はそれが単なる変数名なので、それは同じように動作すると思った。エラーは、名前を受け取っていないことを示します。私はこのガイドhttps://www.w3schools.com/php/php_file_upload.aspに従っていました。これはfileToUploadを使用しています。なぜ私が変数名を変更しても、それはもう動作しません。名前はfileToUploadなのですか? – user2350459