【问题标题】:Javascript + .net core : upload files not using FormData and FromFromJavascript + .net 核心:不使用 FormData 和 FromFrom 上传文件
【发布时间】:2020-10-27 11:02:17
【问题描述】:

我正在尝试进行“简单”文件上传。

前端是javascript,后端是.net core。

我曾与 FormData / multipart 、 FromForm 和 iFormFile 一起工作,但我被指示不要使用这种方法(由于某种原因它吹嘘)。

我一直在尝试使用 FileReader 和 readAsDataURL,但在 .net 端不断收到 500 代码。

我应该如何对控制器进行编码才能读取 DataURL 格式?

【问题讨论】:

  • 嗨@NelsonAndré,有关于此案的最新消息吗?

标签: javascript .net asp.net-core file-upload


【解决方案1】:

如果您不想使用 FormData,您必须适当地设置标头并发送二进制数据。不要编码或处理任何东西。

您可以将文件添加为没有 FormData 的简单请求的内容。 .Net 方面根本不应该改变。

请看这里: https://stackoverflow.com/a/28212708/5238618

【讨论】:

    【解决方案2】:

    我一直在尝试使用 FileReader 和 readAsDataURL,但在 .net 端不断收到 500 代码。

    我应该如何对控制器进行编码才能读取 DataURL 格式?

    如果您想使用 FileReader.readAsDataURL() 获取所选图像的 base64 编码字符串,并将其发布到特定的控制器操作,您可以使该控制器操作接受字符串类型参数,如下所示。

    [HttpPost]
    public IActionResult UploadFile([FromBody]string base64Encoded_Img)
    {
        //...
    

    从 JS 客户端发出请求

    data_url = reader.result;
    $.ajax({
        type: 'Post',
        contentType: 'application/json; charset=utf-8',
        url: "https://xxx/xxxx/uploadfile",
        data: JSON.stringify(data_url),
        success: function (json) {
            console.log(json);
        },
        //...
    });
    

    测试结果

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-19
      • 2019-12-20
      • 2021-12-24
      • 2014-06-08
      • 2016-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多