ant上传组件upload,前端读取文件、创建文件

该博客介绍了如何实现用户上传并修改JSON文件后保存修改内容的前端功能。通过使用React的antd Upload组件读取文件,显示在代码编辑器中供用户修改。当用户点击保存时,将修改后的文件内容创建成新的文件流,并使用FormData提交到后端API进行保存。
摘要由CSDN通过智能技术生成

业务需求是用户上传文件后,还能修改文件内容,最后保存修改后的文件

实现方式:

1.前端读取文件内容后显示在代码编辑器中  方便用户修改

2.点保存按钮时,拿到改变的文件内容后,创建新的文件流 , 提交给后端

----------------------------------------------------------

这里演示的是JSON文件数据

选择文件

1.拿到文件的JSON数据后,在代码编辑中显示

js代码:react引入antd的Upload组件

  
  onImportExcel = (file) => {
      // 创建FileReader 对象读取
      const reader = new FileReader();
      reader.readAsText(file);
      reader.onload = () => {
        // 获取文件内容存进tempFile
        this.setState({ tempFile: reader.result});
      };
  };

    
    const uploadProps = {
      name: 'file',
      action: '',
      showUploadList: false,
      fileList,
      onChange: this.handleChange,
      beforeUpload: (file, fileList) => {
        this.onImportExcel(file);
      },
    };


<Upload {...uploadProps} accept=".JSON">
    <Button type="primary" ghost className="mr-md">
        导入JSON文件
     </Button>
</Upload>

2 拿到改变的文件内容后,创建新的文件流 , 提交给后端

   handleSave = () => {
        const fileConent = 'test'; // fileConent其实时代码编辑器用户修改的内容
        const formData = new FormData();
        // 将得到的文件流添加到FormData对象
        const uuid = createUuid();
        const newFile = new Blob([fileConent], { type: 'application/json' });
        // tempFile.name是文件名
        formData.append('file', newFile, tempFile.name);
        formData.append('uuid', uuid);
        axios.post(`/api/upload`, formData).then(res => {
          if (res.status === 200) {
            console.log('上传成功', res.data);
          } 
        });
      }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值