2012-03-27 8 views
1

Ich versuche, einen Datei-Upload mit JQuery und C# durchzuführen, aber ich habe eine Menge Probleme. Ich kann nicht herausfinden, wie man die Datei zum Hochladen bringt. Es funktioniert gut, wenn ich FileUpload benutze, aber ich erlaube dem Benutzer, Dateien dynamisch hinzuzufügen, und deshalb benutze ich Jquery (ajax Posten zu einer anderen Datei), um die Datei zu verarbeiten. Zuerst bekam ich einen POST- und einen enctype-Fehler, aber jetzt tut es einfach nichts. Firebug zeigt mir, dass der Ajax-Code versagt, sagt mir aber nichts anderes.Mehrere Datei-Upload mit JQuery und C#

function AddDocumentsDatabase() { 
    $('input:file').each(function (index) { 
     var fileName = $(this).val(); 

     $.ajax(
     { 
      type: "POST", 
      url: "../ajaxURLs/InsertDocument.aspx?requestNumber=" + reqNum + "&fileName=" + fileName, 
      contentType: 'multipart/form-data', 
      cache: false, 
      success: function (html) { 
       alert("File Inserted!") 
      } 
     } 
     ); 
    }); 
} 

Und hier ist der InsertDocument.aspx Code:

Hier meine Jquery ist

RequestDB db = new RequestDB(); 
    ApplicationFunctions app = new ApplicationFunctions(); 

    protected void Page_Load(object sender, EventArgs e) 
{ 
    Response.Write("Hello"); 
    foreach (string key in Request.Form) 
    { 
     if (!key.StartsWith("fleBrowse")) continue; 
     { 
      Response.Write(Request.Form[key].GetType()); 
     } 

    } 
} 

Wenn es etwas wirklich einfach, ich entschuldige mich, ist meiner Meinung nach voll läuft nicht Geschwindigkeit, gerade jetzt. Irgendwelche Vorschläge werden sehr geschätzt.

+3

Umsetzung Ihres eigene asynchrone FileUpload ist eine große Aufgabe, abhängig von der Browser-Unterstützung (HTML5, Flash, ...) Sie sollten nach vorhandenen Implementierungen suchen. Ich bin ziemlich glücklich mit plupload: http://www.plupload.com/ – jbl

+1

Einverstanden - keine Notwendigkeit, dieses Rad neu zu erfinden. Vor allem, da jQuery keine integrierte Funktionalität hat, um den Inhalt der ausgewählten Datei tatsächlich auf den Server zu stellen - der Code, den Sie oben gepostet haben, sendet den Dateinamen, aber nicht die Datei selbst, so dass Ihr Server das nicht kann viel Witz. – Dave

Antwort

2

Ich stimme shawleigh17 zu; es ist eine große Arbeit, und andere haben es gut gemacht. Ich habe jQuery FileUpload (http://blueim.github.com/jQuery-File-Upload/) mit großem Erfolg verwendet. Allerdings, wenn Sie wollen, um zu versuchen, Ihren Code zu debuggen, versucht, eine Fehlerfunktion auf Ihren Ajax-Aufruf zu debuggen und fügte hinzu:

$.ajax(
{ 
    type: "POST", 
    url: "../ajaxURLs/InsertDocument.aspx?requestNumber=" + reqNum + "&fileName=" + fileName, 
    contentType: 'multipart/form-data', 
    cache: false, 
    success: function (html) { 
    alert("File Inserted!") 
    }, 
    error(jqXHR, textStatus, errorThrown) { 
    alert("Error: " + textStatus + ": " + errorThrown); 
    } 
}); 
Verwandte Themen