input = file 实现上传文件

input = file 实现上传文件使用input=file实现文件上传功能,如果点击提交按钮,提交表单并上传选中的文件:<FormItemlabel=”上传简历”><divclassName=”section-pushInChannel-fileInput”><inputid=”file”onChange={this.handleFileChange}t…

大家好,又见面了,我是你们的朋友全栈君。

使用input = file实现文件上传功能, 如果点击提交按钮,提交表单并上传选中的文件:
在这里插入图片描述

<FormItem label="上传简历">
    <div className="section-pushInChannel-fileInput">
        <input id="file" onChange={this.handleFileChange} type="file"  name="file" multiple="multiple"></input>
        <div className="fileTip"></div>
    </div>
</FormItem>

handleFileChange = (e) => {
      const input = e.target;
       const files = e.target.files;
       if(files && files[0]) {
           const file = files[0];
           if(file.size > 1024 * 1024 *3) {
               fileTip.innerHTML = '文件大小不能超过3M!';
               input.value = '';
               return false;
           } else {
               fileTip.innerHTML = '';
               formData.append("file", file); 
           }
       }
    }

handleSubmitBtnClick = (e) => {
        const { form } = this.props;
        e.preventDefault();
        form.validateFields((err, values) => {
            if(!fileInput.value) {
                fileTip.innerHTML = '请选择您要上传的简历';
            }
            if(!err) {
                if(!fileInput.value) {
                    return;
                }
                Object.keys(values).forEach((key) => {
                    formData.append(key, values[key]);
                });
                axios.post('http://120.77.204.211:9091/api/push', formData).then(res => {
                    if(res.data.success && res.data.retCode === 0) {
                        // 成功
                        this.setState({
                            visible: true,
                        });
                        codeTip.innerHTML="";
                    } else {
                        // 失败
                        formData = new FormData(); // 每次失败要重置formdata对象
                        formData.append('file', fileInput.files[0]);
                        codeTip.innerHTML="您输入的验证码错误";
                    }
                })
            }
        })
    }

注意:

  1. 提交包含文件的表单时,需要使用FormData对象,将要提交的字段append,作为请求的参数;
  2. 可以通过fileInput.value来清空上传的文件;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160384.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C6000汇编语言实现乘法,C6000(四)-汇编.ppt[通俗易懂]

    C6000汇编语言实现乘法,C6000(四)-汇编.ppt[通俗易懂]C6000(四)-汇编BIT/TI第四讲汇编语言初步第四讲汇编语言初步目的:用汇编语言编写简单程序学习内容汇编代码的结构汇编程序的构成编写简单算法:y=mx+b一、汇编代码的构成label:||[cond]instruction.unitoperand;comment常用伪指令二、汇编程序的构成程序=数据结构+算法汇编程序…

    2022年6月23日
  • maven打包命令—P,指定springboot项目的配置文件「建议收藏」

    maven打包命令—P,指定springboot项目的配置文件「建议收藏」适用于jekins配置打包环境。线下我们使用的dev环境,线上,测试环境就有不同的配置文件了。只需要在jekins的打包命令加入-Pprod,就可以了。prod对应相应的环境。但是还需要在maven的配置文件<project>节点里面加入<profiles><!–开发–><profile><!-…

    2022年5月20日
  • Rewritecond介绍[通俗易懂]

    Rewritecond介绍[通俗易懂]RewriteCondSyntax:RewriteCondTestStringCondPattern[flags]  RewriteCond指令定义一条规则条件。在一条RewriteRule指令前面可能会有一条或多条RewriteCond指令,只有当自身的模板(pattern)匹配成功且这些条件也满足时规则才被应用于当前URL处理。  TestString是一个字符串,除了包含普通的

    2022年6月13日
  • curl命令具体解释

    curl命令具体解释

    2021年12月10日
  • 开启c盘默认共享(c++内存管理机制)

    不建议关闭---默认共享是系统安装完毕后就自动开启的共享,也叫管理共享,常被管理员用于远程管理计算机。在Windows2000/XP及其以上版本中,默认开启的共享有“c$”、“d$”、“admin$”、“ipc$”等,我们可以在“运行”对话框中输入“\\计算机名\盘符$”对这些资源进行访问,以上这些共享就叫做默认共享。但你可曾想过这些默认共享与普通共享在访问上有哪些区别呢?默认共享有哪些特权…

    2022年4月17日
  • Dropout[通俗易懂]

    Dropout[通俗易懂]参数正则化方法Dropout受人类繁衍后代时男女各一半基因进行组合产生下一代的启发,论文("Dropout:ASimpleWaytoPreventNeuralNetwor

    2022年8月4日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号