2016-07-08 6 views
0

jQueryをデータと非同期に使用してアップロードすることはできますがアップロードできません...データ変数のみを取得できますそこJQueryページでファイルタイプのデータ(イメージ)を取得し、PHPのページに画像をアップロードする方法

img_upload.php

<form name="frm" id="frm" novalidate enctype="multipart/form-data"> 
    <input type="text" id="txt_name" name="txt_name" /> 
    <input type="file" name="img_upload" id="img_upload"> 
</form> 

img_upload.js

$(function() { 

    $("#frm_edit input, #frm_edit textarea").jqBootstrapValidation({ 
     preventSubmit: true, 
     submitSuccess: function($form, event) { 
      event.preventDefault(); // prevent default submit behaviour 

     var txt_name = $("input#txt_name").val(); 

     var FileImgData = $('#img_upload').prop('files')[0]; 
     var form_data = new FormData();     
     form_data.append('file', FileImgData); 

      $.ajax({ 
       url: "./img_upload_p.php", 
       type: "POST", 
       data: { 
        txt_name: txt_name, 
        upload_photo: FileImgData 
       }, 
       cache: false, 
      }) 
     }, 
    }); 
}); 
......プロセスのページではなく$ _FILESを使用してイメージファイルを取得することはできません正しいかどうかはJQueryファイル "img_upload_p.js" に:

img_upload_p.php

$str_name="";  
if(isset($_POST["txt_name"])) { $str_name=trim($_POST["txt_name"]); } 

$str_upload_photo=""; 
if(isset($_FILES['file_photo'])) 
{ $str_upload_photo = trim($_FILES['file_photo']['name']); } 

が私を提案してくださいそのイメージ変数が(FileImgData upload_photo)を宣言しました。

また、 "img_upload_p.php"で画像ファイル変数を取得する方法が正しいかどうかを確認してください。

それらのいずれかが

PHP画像アップロードコードの準備ができていると作業状態に...ちょうど持つ...私はjQueryのファイルでそのイメージ変数を割り当て、PHPプロセスのページで取得することができますどのようにして間違っている場合上記の2つの点に問題があります...

答えて

0

img_upload.js

$(function() { 

    $("#frm_edit input, #frm_edit textarea").jqBootstrapValidation({ 
     preventSubmit: true, 
     submitSuccess: function($form, event) { 
      event.preventDefault(); // prevent default submit behaviour 

      var formData = new FormData(); 
      formData.append("hdn_pkid", $("input#hdn_pkid").val()); // if hidden variable is passed    
      formData.append("txt_name",$("input#txt_name").val()); // if other input types are passed like textbox, textarea, select etc... 
      formData.append('img_upload', $('input[type=file]')[0].files[0]); // if image or other file is passed 

      $.ajax({ 
       url: "./img_upload_p.php", 
       type: "POST", 
       data: formData, 
       contentType: false, 
       processData: false, 
       cache: false, 
      }) 
     }, 
    }); 
}); 

img_upload_p.php

  • としてPOSTメソッドを使用して、すべての変数の値を取得し、使用するために新しい変数に保存して、このページ上のプロセスいつも

  • 以下のコードのように変数を取得し、通常のPHP関数または独自の方法で画像をアップロードします。私はjQueryのを使用してデータで画像をアップロードすると、すべてのアップロードのコードの準備ができているが、唯一の問題は、PHPプロセスのページで変数を宣言したjQueryのファイルとフェッチで変数の宣言である

    if(isset($_FILES['img_upload'])) 
    { $str_ = trim($_FILES['img_upload']['name']); } 
    
+0

これは動作します... !!! – PPG

0

これを行うには、Dropzone jsがあります。これはajaxを使用してファイルをアップロードするのに最適なライブラリで、プログレスバーも用意されています。サーバー側で独自のPHP(または他のサーバー側言語)コードを使用することができます。

私はそれが役に立ちそうです。

+0

... – PPG

+0

このライブラリは自動的にあなたが心配する必要はありませんあなたのデータを取るでしょう。 –