gpt4 book ai didi

javascript - 如何在 asp.net 中使用 ajax 调用上传文件?

转载 作者:行者123 更新时间:2023-12-05 01:44:51 25 4
gpt4 key购买 nike

我创建了一个小型的 asp.net web 表单应用程序来管理电子邮件,我创建了一个小界面,其中包含用于发送电子邮件的强制性信息,例如发件人、收件人、主题等。现在我想将文件附加到电子邮件中,我使用asp.net文件上传 Controller 上传文件,并且必须附加多个文件,

Interface

现在我想将这些详细信息发送到代码后面,所以我认为最好的方法是使用 ajax 调用,因为我不想刷新我的页面,但我不知道如何发送将文件附加到服务器端,我读过一些文章,他们说我必须使用 FormData 来发送文件,然后我创建了一个 FormData 对象并将所有附加文件附加到该对象。但是如何将这个对象传递到服务器端,我的js代码如下,

function sendEmail() {

var data = new FormData();
var files = $('.attachment');
$.each(files, function (key, value) {
var file = $(value).data('file');
data.append(file.name, file);
});

$.ajax({
url: "OpenJobs.aspx/sendEmail",
type: "POST",
async: false,
contentType: false, // Not to set any content header
processData: false, // Not to process data
data: null,
success: function (result) {
alert(result);
},
error: function (err) {
alert(err.statusText);
}
});

}

有什么帮助吗?

最佳答案

你需要使用 Generic handler 来使用 ajax 上传文件,试试下面的代码:

function sendEmail() {

var formData = new FormData();
var files = $('.attachment');
$.each(files, function (key, value) {
var file = $(value).data('file');
formData.append(file.name, file);
});

$.ajax({
url: "FileUploadHandler.ashx",
type: "POST",
contentType: false, // Not to set any content header
processData: false, // Not to process data
data: formData,
success: function (result) {
alert(result);
},
error: function (err) {
alert(err.statusText);
}
});
}

通用处理程序

<%@ WebHandler Language="C#" Class="FileUploadHandler" %>    

using System;
using System.Web;

public class FileUploadHandler : IHttpHandler
{

public void ProcessRequest (HttpContext context)
{
if (context.Request.Files.Count > 0)
{
HttpFileCollection files = context.Request.Files;
for (int i = 0; i < files.Count; i++)
{
HttpPostedFile file = files[i];
string fname = context.Server.MapPath("~/uploads/" + file.FileName);
file.SaveAs(fname);
}
context.Response.ContentType = "text/plain";
}

}
}

关于javascript - 如何在 asp.net 中使用 ajax 调用上传文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44475698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com