2016-05-03 9 views
0

私はファイルをアップロードしましたが、他のフォームデータを渡す必要があります。主にPHPを動的にすることができ、ファイルのカテゴリを渡すことができるので、正しいフォルダに入れられます。 1つの行を変更するだけで、同じ正確な関数を10回作成するのは大したことではありません。私は、データ PHPファイルのアップロードにもっと多くの変数を渡す

data: { 
     form_data:form_data, 
     fileType:fileType 
     }, 

を通じてAJAXでそれを渡して試してみましたが、私は、ファイルのデータを使用して、それを追加しようとしたが、それは同様に働いていない

form_data.append('file_up', file_data); 
form_data.append('file_up', fileType); 

紛失しているものがありますか?私はそのファイルにphpを渡すことができる必要があります。

答えて

0

コードの多くを見ることなく、あなたの問題が何であるかを知るのは少し難しいです。

2番目の方法は、form_data.appendを使用して作業する必要があります。 (?私はあなたが両方の命名てきたという事実を推測している「file_upは」ただ誤植で追加)

ここでは(サーバーとクライアント側のコード)作業例です。

<script> 
$(document).ready(function() { 
    $('#s').click(function() { 
     var form_data = new FormData(); 
     form_data.append("file_up", $('#f')[0].files[0]); 
     form_data.append("file_type", $('#t').val()); 
     $.ajax({ 
      url: "test.php", 
      type: "POST", 
      data: form_data, 
      processData: false, 
      contentType: false, 
      success: function(response) { 
       $('#output').html(response); 
      }, 
      error: function(jqXHR, textStatus, errorMessage) { 
       console.log(errorMessage); // Optional 
      } 
     }); 
    }); 
}); 
</script> 
<input id="f" type="file"/> 
<input id="t" type="text"/> 
<button id="s">Submit</button> 
<div id="output"> 
</div> 

と対応しますPHPのページ:

<pre><?php 

echo '$_FILES:<br>'; 
print_r($_FILES); 

echo '<br><br>$_REQUEST:<br>'; 
print_r($_REQUEST); 


?></pre> 

コードが解決しない場合は、問題がクライアントまたはサーバ側であるかどうかを判断することができるかどうかを確認するために、ブラウザの開発者向けツール、ネットワーク]タブを使用してみてください。あなたのAJAX呼び出しを提出すると、あなたのXHRリクエストペイロードは、次のようになります。これは、Firefoxからである

-----------------------------16516352471776150483721558073 
Content-Disposition: form-data; name="file_up"; filename="test.php.zip" 
Content-Type: application/zip 

......BINARY FILE DATA HERE...... 

-----------------------------16516352471776150483721558073 
Content-Disposition: form-data; name="file_type" 

lsajdflkajdf 
-----------------------------16516352471776150483721558073-- 

を。私はクロムがおそらく同等の情報を提供していると仮定しています。

ファイルタイプの2番目のフォームデータセクションがない場合は、問題はJavaScriptのどこかにある可能性があります。 (この場合、ajax/FormDataコードをもう少し投稿すれば役に立ちます)。

セクションがある場合、問題はおそらくサーバー側のどこかにあります。 (その場合は、$_REQUESTのデータを読み込もうとしているサーバーサイドコードのセクションを投稿したり、$_REQUESTprint_rまたはvar_dump

に書き込むと便利です
関連する問題