2013-07-24 17 views
12

Witam wszystkich zamieszczam przykładowy kod, w którym przesyłam plik za pomocą Ajax JQuery. Wszystko działa dobrze, ale chcę przeczytać zawartość pliku w moim kodzie php. Więc jaka jest składnia, aby ją przeczytać?jak odczytać obiekt FormData w 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> 

Teraz nie wiem, jak odczytać dane pliku wysłane przez Ajax. Więc proszę dać mi znać kod

+0

Czytasz go tak jak chcesz, jeśli forma były złożone. Z '$ _POST []' i '$ _FILES []'. – Barmar

+0

Dodałem $ name = $ _ POST []; teraz jaki parametr muszę przekazać w tym nawiasie. –

Odpowiedz

15

Pierwszy argument przekazany do FormData.append() jest nazwą elementu formularza, który jest przekazywany do serwera. Tak więc data.append('file', alpha) w twoim przypadku jest równoważne <input type="file" name="file"> - przekazałeś "plik" do append(), więc 'file' to twoja nazwa wejścia.

Powinieneś znaleźć swoje rzeczy w $_POST['file'] i $_FILES['file']. Następnym razem spróbuj var_dump($_POST); po przesłaniu, aby zobaczyć tablicę. :)

Więcej informacji na temat wysyłania plików w php tutaj: http://php.net/manual/en/features.file-upload.php

+0

var alpha = nazwa.files [0]; czy ktokolwiek może wyjaśnić znaczenie tej linii w moim kodzie. –

+2

'' elementy html mają właściwość o nazwie 'files', która jest tablicą obiektów JavaScript' File' wybranych przez użytkownika w tym polu wejściowym. Jest to tablica, ponieważ możesz wybrać wiele plików, jeśli użyjesz '". Twój przykład zezwala tylko na jeden plik, więc wybiera 'pliki [0]', aby uzyskać pierwszy (i jedyny) plik. –

+0

jak dokonać zmian w data.append ("plik", alfa); aby dodać więcej plików tahn –