Frage an php, upload, ajax, javascript – PHP AJAX-Datei hochladen

1

Ich habe den gesamten Stackoverflow und das allgemeine Internet durchgesehen und kann keinen einfachen AJAX-Datei-Uploader finden. Diejenigen, die ich gefunden habe, sind nicht flexibel genug und passen nicht zu meinem Zweck. Wenn ich dieses Skript zum Hochladen von Dateien anpassen könnte, wäre das großartig:

<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();
 }

Im HTML hätte ich

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

Vielen Dank

Deine Antwort

3   die antwort
7

Uploadify

Und wenn Sie keinen Blitz möchten, können Sie diesen verwenden.

AxUploader

Danke, ich habe gerade AxUploader benutzt. Das ist genau das, wonach ich gesucht habe user1310420
0

Dateien verwenden. Denken Sie über die Sicherheitsprobleme nach, die dazu führen würden? Was ist, wenn ich "/%USER%/Desktop/CreditCardsAndPasswords.txt" in Ihr str-Feld einfüge? Kurz gesagt, Sie müssen die "nicht flexiblen" Uploader finden und verwenden, über die Sie gesprochen haben, und sie müssen Ihren Anforderungen entsprechend bearbeitet werden. Entweder das, oder schreiben Sie selbst eines, um Ihren Zweck zu erfüllen.

Die Art und Weise, wie die meisten 'Ajax'-Uploader arbeiten, ist, dass sie dynamisch HTML-Eingabedateielemente erstellen und einreichenTeilmenge von Ihrem Formular (nur das Dateielement) in ein PHP-Skript auf Ihrer Website, das die Datei dann in einem beliebigen temporären Verzeichnis speichert. Wenn Sie dann den Rest des Formulars übermitteln, können Sie den Rest des Skripts „nachholen“ und die für die hochgeladenen Dateien erforderliche Verarbeitung vornehmen.

Es gibt viele Ajax-Uploader. Mach einfach eine Suche und finde eine, ich kann nicht glauben, dass alle da draußen nicht gut genug sind.

Hallo, das Problem dabei ist, dass ich einen einzelnen Upload-Button haben muss und sobald jemand auf "Upload" geklickt hat, wird die Datei automatisch hochgeladen. Es wird jeweils nur eine Datei hochgeladen. 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);

    }
});

sie mit echo phpinfo ().

Sie müssen die maximale Dateigröße festlegen, die Sie hochladen möchten. Standardmäßig ist es 5 MB, denke ich. Überprüfen Sie auch, ob die andere ini-Variable erforderlich ist, um die Größe der Post-Daten zu erhöhen.

Verwandte Fragen