ashx接口怎么传递 HttpPostedFileBase
由于 HttpPostedFileBase 是 ASP.NET MVC 中的文件上传类,它通常是在前端页面中使用 HTML 的 <input> 标签的 type="file" 属性来实现文件上传,然后在后端的控制器中通过参数绑定来获取上传的文件。
如果想要通过 ashx 接口传递 HttpPostedFileBase,可以通过以下步骤实现:
-
在前端页面中,使用 jQuery 或者其他 JavaScript 库来实现文件上传,并将文件数据转换为二进制数据。
-
将二进制数据通过 Ajax 请求发送到 ashx 接口,将文件数据作为请求参数传递。例如:
var fileData = $('#input-file').prop('files')[0]; // 获取上传的文件数据 var formData = new FormData(); // 创建表单数据对象 formData.append('file', fileData); // 将文件数据添加到表单数据中 $.ajax({ url: 'upload.ashx', type: 'POST', data: formData, processData: false, // 不处理表单数据 contentType: false, // 不设置请求头 success: function(response) { console.log(response); }, error: function(xhr, status, error) { console.error(error); } }); -
在 ashx 接口中,通过
HttpContext.Current.Request.Files属性获取上传的文件数据,例如:public void ProcessRequest(HttpContext context) { if (context.Request.Files.Count > 0) { HttpPostedFileBase file = new HttpPostedFileWrapper(context.Request.Files[0]); // 处理上传的文件 } }
需要注意的是,在 ashx 接口中获取的 HttpPostedFileBase 对象并不是 ASP.NET MVC 中的原生对象,而是通过 HttpPostedFileWrapper 类进行包装的对象,需要将其转换为原生对象后才能进行操作
原文地址: https://www.cveoy.top/t/topic/efE8 著作权归作者所有。请勿转载和采集!