由于 HttpPostedFileBase 是 ASP.NET MVC 中的文件上传类,它通常是在前端页面中使用 HTML 的 <input> 标签的 type="file" 属性来实现文件上传,然后在后端的控制器中通过参数绑定来获取上传的文件。

如果想要通过 ashx 接口传递 HttpPostedFileBase,可以通过以下步骤实现:

  1. 在前端页面中,使用 jQuery 或者其他 JavaScript 库来实现文件上传,并将文件数据转换为二进制数据。

  2. 将二进制数据通过 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);
        }
    });
    
  3. 在 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 类进行包装的对象,需要将其转换为原生对象后才能进行操作

ashx接口怎么传递 HttpPostedFileBase

原文地址: https://www.cveoy.top/t/topic/efE8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录