1

(...)Dateien und Daten-Upload ohne Form und mit Formdata jquery und asp.net

EDIT:

// Client-Seite

var $elem = $("a.attachMessageBtn"); 
var evtOnClick = $elem.attr('onclick'); 
var postData = new FormData(); 
postData.append("FID", FID); 
postData.append("messageText", messageToSend); 

for (var i = 0; i < files.length; i++) 
{ 
    postData.append(files[i].name, files[i]); 
} 

$.ajax(
{ 
    url: ajaxUrl + "?a=setNewMessage", 
    type: "POST", 
    data: postData, 
    cache: false, 
    processData: false, 
    contentType: false, 
    forceSync: false, 
    enctype: "multipart/form-data", 
    beforeSend: function (jqXHR, settings) 
    { 
     // Something being done here. 
    }, 
    success: function (data, textStatus, jqXHR) 
    { 
     // Something being done here. 
    }, 
    error: function (jqXHR, textStatus, errorThrown) 
    { 
     // Something being done here. 
    }, 
    complete: function (jqXHR, textStatus) 
    { 
     // Something being done here. 
    } 
}); 

// Server-Seite

string sMessageText = Request.Form["messageText"]; 
int nFID = 0; 

if (!string.IsNullOrEmpty(sMessageText) && int.TryParse(Request.Form["fid"] + "", out nFID)) 
{ 
    if (Request.Files != null) 
    { 
     int nFilesCount = Request.Files.Count; 

     if (nFilesCount > 0 && nFilesCount <= 3) 
     { 
      foreach (string file in Request.Files) 
      { 
       // Specific code here that has always been working. 
      } 
     } 
    }  
} 

EDIT 2

OK, endlich zu den Dateien und den Daten, aber jetzt habe ich wieder ein Problem mit der Schleife der Nachricht konfrontiert.

Angenommen, ich habe eine Nachricht mit einem Anhang gesendet; dann sende ich eine andere Nachricht mit z.B. 2 Anhängen -> diese zweite Nachricht wird zweimal gesendet; dann sende ich eine weitere Nachricht, unabhängig von der Anzahl der Anhänge -> es wird 3 mal gesendet.

Wie kann ich das lösen, da der Code, den ich habe, der obige ist?

Irgendwelche Hilfe, bitte?

Vielen Dank im Voraus.

Antwort

0

Ich endete tatsächlich dieses Problem zu lösen, während ich das gleiche tat, antwortete ich hier multiple file upload jquery asp.net add, remove then add again.

Für die Dateien habe ich die for-Schleife verwendet und dann den Rest der Daten an das formData-Objekt angefügt.

Alles funktioniert, für jetzt ...

+0

funktioniert es in Mobile? In meinem Fall funktioniert es gut im Desktop, aber nicht im mobilen Browser. –