react中使用formdata获取不了表单要上传的文件?react中应该怎么上传文件?

发布于 2022-09-06 05:29:18 字数 2625 浏览 26 评论 0

1、在react中有个form表单,包含text,radio和file,可是js代码创建formDate时获取不到file的信息,请问该怎么去获取。
2、代码如下:
render的代码:

<form ref="addForm" className="addForm" id="addForm" enctype="multipart/form-data" method="post">
                        <div className="formType" >
                            <label htmlFor="type" className="col-sm-1 control-label">物料类型</label>
                            <input type="radio" name="type" value="1" checked={this.state.type =="1"} onChange={this.handleChange} />图片
                            <input type="radio" name="type" value="2" checked={this.state.type =="2"} onChange={this.handleChange} />视频
                        </div>
                        <div className="formWidth">
                             <label htmlFor="materialWidth">物料宽</label>
                             <input type="text" id="materialWidth" name="width" value={this.state.width} onChange={this.handleChange} placeholder="物料宽度" />
                        </div>
                        <div className="formHeight">
                            <label htmlFor="materialHeight">物料高</label>
                            <input type="text" id="materialHeight" name="height" value={this.state.height} onChange={this.handleChange} placeholder="物料高度"  />
                        </div>
                        <div className="formUpload">
                            <label htmlFor="uploadMaterial">上传文件</label>
                            <input ref="material" id="uploadMaterial" name="files" type="file" />
                        </div>
                        <div className="submit">
                            <button type="button" className="btn btn-success" onClick={(event)=>{this.handleSubmit(event)}}>提交</button>
                        </div>
                    </form>

js的代码:

getInitialState: function() {
    return {
            type: "",
            width:"",
            height:"",
            "tab":"explain"
        };
  },
  handleChange: function(event) {
        var newState={};
        newState[event.target.name]=event.target.name=="checked"?event.target.checked:event.target.value;
        this.setState(newState);
  },
   handleSubmit: function(event){
        var formDate = new FormData($("#addForm")[0]);
        }

只取到这三个值:
clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓝梦月影 2022-09-13 05:29:18

用了append方法,把上传的文件添加到FormData里面

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文