2013-07-24 9 views
12

こんにちは皆私はAjax JQueryを使用してファイルをアップロードしているサンプルコードを投稿しています。すべてのことがうまく動作しますが、私は私のPHPコードでファイルの内容を読んでみたいです。では、それを読むための構文は何ですか?PHPでFormDataオブジェクトを読み込む方法

<?php 

?> 

<!--================================html==================================================--> 

<html> 
<head> 
    <title>AJAX UPLOAD</title> 
    <script type="text/javascript" src="jquery-2.0.2.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function(){ 
      $('#Button_').click(function(){ 
       alert("hi"); 
       var name= document.getElementById('File_'); 
       var alpha=name.files[0]; 
       console.log(alpha.name); 
       var data= new FormData(); 
       data.append('file',alpha); 
       $.ajax({ 
       url:'process.php', 
       data:data, 
       processData:false, 
       contentType:false, 
       type:'POST', 
       success:function(msg){ 
       alert(msg); 
       } 
       }); 
      }); 
     }); 
    </script> 
</head> 
<body> 
    <input type="file" name="File" id="File_"/> 
    <input type="button" name="Button" id="Button_" value="UPLOAD"> 
</body> 
</html> 

今、私はAjax経由で送信されたファイルデータの読み方を知りません。だから私にコードを教えてください

+0

フォームが送信されていた場合は、ちょうどあなたのようにそれを考え読みください。 '$ _POST []'と '$ _FILES []'を使ってください。 – Barmar

+0

$ name = $ _ POST [];を追加しました。今ではこの括弧でどのパラメータを渡す必要があります。 –

答えて

15

FormData.append()に渡す最初の引数は、サーバーに渡されるフォーム要素の名前です。あなたの場合、data.append('file', alpha)<input type="file" name="file">に相当します。あなたは 'file'をappend()に渡したので、 'file'は入力名です。

あなたのものは$_POST['file']$_FILES['file']であるはずです。次回は提出後に配列var_dump($_POST);を試してみてください。 :)

は、ここにPHPでファイルのアップロードについて学ぶ:http://php.net/manual/en/features.file-upload.php

+0

var alpha = name.files [0];どのように私のコードでこの行のmeanningを説明することができます。 –

+2

'' html要素は 'ファイル 'という名前のプロパティを持ちます。これは、その入力フィールドでユーザが選択したJavaScriptの' File'オブジェクトの配列です。 '"を使用すると複数のファイルを選択できるので、配列です。あなたの例は1つのファイルしか許さないので、 'files [0]'を選択して最初の(そして唯一の)ファイルを取得します。 –

+0

data.append( 'file'、alpha)に変更を加える方法。より多くのファイルを追加する –

関連する問題