没有表单的文件和数据上传以及formData jquery和asp.net

时间:2016-06-01 14:23:25

标签: jquery asp.net ajax multipartform-data jquery-file-upload

(...)

修改

//客户端

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

//服务器端

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.
            }
        }
    }      
} 

编辑2

好的,最后得到了文件和数据,但现在我再次面临循环消息的问题。

假设我发送了一条带附件的邮件;然后我发送另一条消息,例如,2个附件 - &gt;这第二条消息将被发送两次;然后我发送另一条消息,无论附件数量多少 - &gt;它将被发送3次。

为什么我要解决这个问题,因为我的代码是上面那个?

请帮忙吗?

非常感谢你。

1 个答案:

答案 0 :(得分:0)

我实际上最终解决了这个问题,同时我在这里回答multiple file upload jquery asp.net add, remove then add again

对于我使用for循环的文件,然后将其余数据附加到formData obj。

现在一切正常......