2017-01-12 30 views
0

ファイルタイプが入力されていますので、画像をアップロードします。私は5回のようなコードを書きましたが、私は間違いを犯したと考えましたが、今のところ私はそれを見ることができません。それは働いていないので。 htmlコードディレクトリに画像をアップロードする際に問題が発生しました

<form method="post" enctype="multipart/form-data"> 
<input type="file" name="primaryimg" id="primaryimg"></br> 
<input type="submit" value="Sell!" name="uploaditem" /> 
</form> 

そして、これは私がbasename($_FILES)は、その取得が価値かを確認するように配置されている$filebasenameをecho'ingしようとした私のPHPコード

if(isset($_POST['uploaditem'])){ 
    $filebasename = basename($_FILES['primaryimg']['name']); 
    $ext = strtolower(substr($filebasename, strrpos($filebasename, '.') + 1)); 
    if (($ext == "jpg" || $ext == "gif" || $ext == "png" || $ext == "jpeg") && ($_FILES['primaryimg']['type'] == "image/jpg" || $_FILES['primaryimg']['type'] == "image/gif" || $_FILES['primaryimg']['type'] == "image/png" || $_FILES['primaryimg']['type'] == "image/jpeg")){ 
     $desired_dir="img/products/sellers/$user/$itemname/"; 
     $file_name=$_files['primaryimg']['name']; 
     if (file_exists($desired_dir . $file_name)){ 
      $errormsg="Filename already exists."; 
     }else{ 
      move_uploaded_file($_FILES['primaryimg']['tmp_name'], $desired_dir . $file_name); 
      $errormsg = $file_name . "successfully uploaded."; 
     } 
    }else{ 
     $errormsg = "Error! File is not a valid jpg, gif, png or jpeg"; 
    } 
} 

です。明らかにその空です。私は$lol=$_POST['primaryimg'];とecho'd $lolを行い、アイテム名を表示しました。何らかの理由で$filesが空のままであり、move_upload_fileも機能しません。

これは私が次のエラーが表示

通知にエラーレポート入れ the code itself The Code echo/print

もの見たものである:未定義のインデックス:Dでのprimaryimg:\ Dropboxが\ UOC \ phphosting \ buyathing \をあなたの画像がjpg/jpegではないことを示しています...ファイル名を印刷する必要がありますが、それはEMPTYであることがわかります。

file_uploadがオンであったかどうかを確認するためにphp.iniに行ってきました。私がアップロードしようとした画像は550kでしたが、私の最大ファイルサイズは2Mでしたので、問題はありません。 私は5時間はグーグルで遊んでいません。だから、もし誰かが私の心を失う前に私を助けることができれば素晴らしいだろう: ') ありがとうございます。

+2

phpのトップにあるエラー報告を有効にします - 'ini_set( 'display_errors'、1); error_reporting(-1); 'と答えをエラーで更新します。 'print_r($ _ FILES);'が実際に何かを返すかどうかを調べる価値があります。 – Darren

+0

インデントのないコードをどのように維持できますか?または、どのようにインデントを付けずにコードを自発的に試してみることができますか? – miken32

+0

@Darrenは、エラーレポートによると、私は次のよう お知らせを取得しています:未定義のインデックスを:primaryimgをDに:\ Dropboxが\ UOC \ phphosting \ buyathing \ sellanitem.phpラインで21 $ _FILESがフェッチされていないイメージの名前 –

答えて

0

私はあなたがファイルを移動するときに、フォルダが存在する必要がありますディレクトリを作成していないと思う。最初にあなたはこのパスへのディレクトリを作成する必要がありますimg/products/sellers/".$user."/".$itemname."/

php基本機能mkdir()を使用してください。

Hereさらに詳しい情報があります。次に、特定のloaction.Iの画像をアップロードしようとすると、これは別のコメントに役立つことを望む、私はそれを調べます。

+0

私は$ usersと$ itemnameを置く前にimg/products/sellers(それは存在する)だけに残しましたが、まだ何もありませんでした。 –

+0

私が考えることができる唯一の事は、$ _FILESがどのデータもフェッチしないことです。あなたが投稿したものはすべて埋め込まれているかどうかを確認するjavascriptメソッドconsole.log()で確認してください。 –

+0

アラートを使用することもできます。 –

関連する問題