当前位置: 首页 > 面试题库 >

使用React.js发布文件

唐晗昱
2023-03-14
问题内容

最终用户应该通过文件浏览器上传excel文件:

<FloatingActionButton title="Upload excel" primary className="import-vendor"
                      containerElement="label"
                      label="Browse file">
      <input onChange={(e) => Actions.uploadXLS(e.target.files[0])} 
             type="file" 
             name="xls" 
             accept="application/vnd.ms-excel" 
             style={{ display: 'none' }}/>
      <UploadIcon/>
</FloatingActionButton>

动作:

uploadXLS(file) {
    this.getInstance().callUploadXLS( file );
}

服务内容:

callUploadXLS: {
    remote( state, data ) {
        const url = `${base}/vendor/form`;
        return $http.instance.api.post( url, data );
    },
    success: Actions.XLSUploaded,
    error: Actions.fail
}

该文件应发送到使用Spring Boot接受的多部分文件构建的POST REST端点。端点无法识别这样发送文件

error: "Internal Server Error"
exception :"org.springframework.web.multipart.MultipartException"
message : "Current request is not a multipart request"
path : "/vendor/form"
status : 500
timestamp : 1501747384079

如何发布Excel文件?

编辑:我现在正在尝试发布文件列表:

const arrayOfFile = [];
let i = 0;
for ( i = 0; i < files.length; i++ ) {
  const data = new FormData();
  arrayOfFile[i] = data.append( 'file', files[i] );
}
this.getInstance().callUploadXLS( arrayOfFile );

但是data.append(’file’,files [i]); 总是返回未定义的


问题答案:

通过multipart/form-data表单将文件传递到后端。

如果您现在检查发送到后端的请求,您将看到您的请求没有发送(可能是)multipart/form-data

您可以检查参考enctype =’multipart / form-data’是什么意思?)题。

您的代码应类似于:

    callUploadXLS: {
        remote( state, file ) {
                    // ^ make sure that `file` here is the same target.files[0]. It should be `File` Object

          // Will turn your form to `multipart/form-data`
          var data = new FormData();
          data.append('file', file);

          const url = `${base}/vendor/form`;
          return $http.instance.api.post( url, data );

        },
        success: Actions.XLSUploaded,
        error: Actions.fail
    }


 类似资料:
  • 用Axis2实现Web Service,虽然可以将POJO类放在axis2\WEB-INF\pojo目录中直接发布成Web Service,这样做不需要进行任何配置,但这些POJO类不能在任何包中。这似乎有些不方便,为此,Axis2也允许将带包的POJO类发布成Web Service。 先实现一个POJO类,代码如下: package service; public class MyServ

  • 问题内容: 我使用JSoup使用以下代码发布值: 现在我也要提交文件。就像带有文件字段的表单一样。这可能吗 ?如果比怎么? 问题答案: 从Jsoup 1.8.2(2015年4月13日)开始,通过新方法才支持此功能。 在旧版本中,不支持发送请求。最好的选择是为此使用一个值得使用的HTTP客户端,例如Apache HttpComponents Client 。最终,您可以获得HTTP客户端响应,以便可

  • 问题是这个。我正在发送音乐文件。我一直收到错误消息422。由于这个原因,我似乎无法正确定位我的身体 和我的代码 并调用此方法 我还发现这个东西 通过Reform2将文件作为对象发送到服务器 在我看来,问题是该字段看起来像“音频[文件]” 谢谢你的帮助

  • 问题内容: 我已经在ES6中使用React.js构建了一个Web应用程序。我目前要创建一个基本的“联系我们”页面,并希望发送电子邮件。我是React的新手,只是发现我实际上不能使用React本身发送电子邮件。我正在使用,但在将示例代码与我的React文件集成时遇到了一些困难。具体来说,调用是可行的,但是我不知道如何将其链接到我的React前端。 Nodemailer:https://github.

  • 我正在尝试使用curl向REST服务发布一个xml文件(utf-16编码)。REST服务需要“multipart/form-data”内容类型。 Curl脚本:Curl-k-i-h“content-type=multipart/form-data”-f“filename=@file.xml;type=text/xml”-x POST-u: 然而,我在运行脚本时得到500个内部服务器错误。 响应:<

  • 我试图使用FetchAPI从一个输入中发布多个文件,但表单数据在附加后仍然为空 我看了看这里,这里,这里,这里和这里的答案,并尝试了他们都没有用 我使用Laravel框架作为后端,这是我的刀片视图文件 控制台记录一个空表单数据对象 这是后端的代码 在其中我得到一个空数组 真的不知道为什么这不起作用!你知道我做错了什么吗?