2013-07-24 12 views
12

Ciao a tutti sto postando un codice di esempio in cui sto caricando un file utilizzando Ajax JQuery. Tutto funziona bene, ma voglio leggere il contenuto del file nel mio codice php. Quindi qual è la sintassi per leggerlo?come leggere l'oggetto FormData in php

<?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> 

Ora non so leggere i dati del file inviati tramite Ajax. Quindi, per favore fatemi sapere il codice

+0

Lo si legge proprio come si farebbe se erano viene inviato un modulo. Con '$ _POST []' e '$ _FILES []'. – Barmar

+0

ho aggiunto $ name = $ _ POST []; ora quale parametro devo passare in questa parentesi. –

risposta

15

Il primo argomento che passate a FormData.append() è il nome dell'elemento del modulo che viene passato al server. Così data.append('file', alpha) nel tuo caso è equivalente a <input type="file" name="file"> - avete passato 'file' per aggiungere() in modo da 'file' è il tuo nome dell'ingresso.

Si dovrebbe trovare la tua roba in $_POST['file'] e $_FILES['file']. La prossima volta prova var_dump($_POST); dopo sottoporre a vedere la matrice. :)

Informazioni sui caricamento di file in php qui: http://php.net/manual/en/features.file-upload.php

+0

var alfa = name.files [0]; qualcuno può spiegare il significato di questa linea nel mio codice. –

+2

'' Gli elementi html hanno una proprietà chiamata 'files', che è una matrice degli oggetti' File' JavaScript selezionati dall'utente in quel campo di input. E 'una matrice, poiché è possibile avere più file selezionati se si utilizza ''. Il tuo esempio consente solo un file, quindi seleziona 'files [0]' per ottenere il primo (e solo) file. –

+0

come apportare modifiche a data.append ('file', alfa); per aggiungere più tahn un file –