读取本地txt文件内容,作为参数传给后端

本功能基于antd pro项目,所以使用antd组件–upload
1.使用上传组件读取文件内容
html片段

<Upload beforeUpload={getTextInfo} showUploadList={false} >
   <Button type='primary'>
     <img src={importImg} style={{marginRight:10}} />
     导入
   </Button>
</Upload>

js片段

  //导入txt文件
  const getTextInfo=(file:any)=>{
    //判断文件类型
    if (file.type !== 'text/plain') {
      message.error(`${file.name} 不是.txt文件!`);
      return file.type === 'text/plain' ? true : Upload.LIST_IGNORE;
    }
    //导入条数
    let importCount:any
    //读取内容
    let targetNum:any
    const reader=new FileReader();
    reader.readAsText(file,"UTF-8");
    reader.onload=async (result:any)=>{
      targetNum=result.target.result;
      //将读取的内容传给后台,得到后台返回的增加了多少条,然后通过计算,跳到最后一页
      importCount=await onImport(targetNum)
      if(importCount>0){
        importSuc(importCount)
      }
      
    }
    return false;
  }

  //导入
  const onImport=async(str:any)=>{
    const params={
      current:1,
      pageSize:10
    }
    const {errorCode,data,errorMessage}=await importPool(params,str)
    if (!errorCode) {
      message.success(errorMessage);
    }
    return data
  }

接口

//导入
export async function importPool(params:any,str:any){
  return await http.postTxt(ACTION.importPool,params,str)
}

http.ts

export const postTxt = async (action: string, params?: any,fileStr?:any) => {
  const data = {
    action,
    params,
    product: 'EMRQuality',
  };
  const dataStr=JSON.stringify(data)
  const txtStr="-----------------------------8eb5b37251gef"+fileStr
  const str=dataStr+txtStr

  try {
    const result = await request('/api/', { method: 'POST', data:str });
    const { errorCode, errorMessage, showType, success } = result;

    if (errorCode) {
      if (showType === 1) {
        message.warn(errorMessage);
      } else if (showType === 2) {
        message.error(errorMessage);
      }
    }

    return { ...result, success: success === 'true' };
  } catch (error) {
    console.error(error);
  }
};

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
后端处理下载本地文件的方式有多种,具体取决于后端使用的编程语言和框架。以下是一些常见的后端处理下载本地文件的方法: 1. 使用Java后台处理下载本地文件的方法可以通过设置响应头来实现。可以使用`response.setContentType()`方法设置文件的MIME类型,使用`response.setHeader()`方法设置`Content-Disposition`头,将文件名传递给浏览器,然后将文件内容写入响应输出流。这样浏览器就能够以附件形式下载文件。 2. 在Node.js中,可以使用`fs`模块来处理下载本地文件。首先,使用`fs.createReadStream()`方法创建一个可读流来读取本地文件,然后通过设置响应头,将文件名传递给浏览器,最后使用`pipe()`方法将文件内容写入响应输出流,实现文件的下载。 3. 在Python中,可以使用`Flask`框架的`send_file()`方法来处理下载本地文件。该方法接受文件路径和其他参数,然后通过设置响应头来实现文件的下载。 总的来说,无论使用哪种后端语言或框架,关键是设置适当的响应头,将文件名传递给浏览器,并将文件内容写入响应输出流,以实现文件的下载。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [React获取Java后台文件流并下载Excel文件流程解析](https://download.csdn.net/download/weixin_38535808/12724283)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [前端下载文件时处理后端有可能返回文件流,有可能返回报错信息的情况。](https://blog.csdn.net/zongmaomx/article/details/128397355)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值