Pytanie w sprawie php, javascript, ajax, upload – Przesyłanie plików AJAX PHP

1

Przejrzałem cały stackoverflow i ogólny Internet i nie mogę znaleźć prostego programu do przesyłania plików AJAX (wystarczy wysłać formularz). Te, które znalazłem, nie są wystarczająco elastyczne i nie pasują do mojego celu. Gdybym mógł dostosować ten skrypt do przesyłania plików, byłoby świetnie:

<script type="text/javascript">
 function upload(str)
 {
 if (str.length==0)
 { 
document.getElementById("txtHint").innerHTML="";
 return;
  }
 if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
   xmlhttp=new XMLHttpRequest();
   }
 else
   {// code for IE6, IE5
   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
   }
 xmlhttp.onreadystatechange=function()
   {
   if (xmlhttp.readyState==4 && xmlhttp.status==200)
     {
     document.getElementById("hint").innerHTML=xmlhttp.responseText;
     }
   }
 xmlhttp.open("GET","ajax/link.php?q="+str,true);
 xmlhttp.send();
 }

W HTML miałbym

<input type='file' onblur='upload(this.value)'>

Dzięki

Twoja odpowiedź

3   odpowiedź
7

Uploadify

A jeśli nie chcesz flashować, możesz użyć tego;

AxUploader

Dzięki, właśnie użyłem AxUploader. To jest dokładnie to, czego szukałem user1310420
0

ania plików. Pomyśl o problemach związanych z bezpieczeństwem, które by to spowodowały? Co jeśli umieściłem „/%USER%/Desktop/CreditCardsAndPasswords.txt” w polu str? W skrócie, musisz znaleźć i użyć tych „nieelastycznych” przesyłających, o których mówiłeś, i będziesz musiał je edytować do swoich potrzeb. Albo to, albo napisz sam, aby dopasować się do swojego celu.

Sposób, w jaki większość osób przesyłających ajax działa, dynamicznie tworzy elementy pliku wejściowego HTML i wysyłapodzbiór twojego formularza (tylko element pliku) do skryptu php na twojej stronie, który następnie zapisuje plik do dowolnego katalogu tymczasowego. Następnie, gdy prześlesz resztę formularza, możesz „nadrobić zaległości” w pozostałej części skryptu i obsłużyć dowolne przetwarzanie, które jest konieczne przy przesyłanych plikach.

Istnieje wiele osób przesyłających wiele ajaxów. Po prostu wyszukaj i znajdź, nie mogę uwierzyć, że wszystkie te, które tam są, nie są wystarczająco dobre.

Cześć, problem polega na tym, że muszę mieć pojedynczy przycisk przesyłania, a gdy ktoś kliknie, załaduje plik automatycznie. Tylko jeden plik zostanie przesłany na raz. user1310420
0
var data = new FormData();
data.append("image_upload",jQuery("#file_upload_input")[0].files[0]);
jQuery.ajax({
    url: 'url',
    type: 'POST',
    data: data,
    cache: false,
    processData: false, // Don't process the files
    contentType: false, // Set content type to false as jQuery will tell the server its a query string request
    success: function(data, textStatus, jqXHR)
    {
        console.log(data, textStatus, jqXHR);
    },
    error: function(jqXHR, textStatus, errorThrown)
    {

        console.log(jqXHR, textStatus, errorThrown);

    }
});

otrzymasz ją za pomocą echo phpinfo ();

musisz ustawić maksymalny rozmiar pliku, który chcesz przesłać. Domyślnie jest to 5 MB. a także sprawdź inną zmienną ini wymaganą do zwiększenia rozmiaru danych post.

Powiązane pytania