【未完结】web 文件上传功能

当前疑问

欢迎大家参与讨论留言

  • Rest 接口返回Content-Type:application/octet-streamContent-Disposition: attatchment;filename=hello.xls 理论上浏览器不能识别这种类型就应该自动弹出下载框,让用户选择保存路径然后下载,为什么还需要以上模拟点击下载文件??目前返回的内容在chrome network 面板里response 里面是下载的文件内容??
  • javascript 怎么理解文件和文件流?

背景

最近在做一个文件上传功能,记录下需要考虑的知识点以及汇总下资料

功能规划

一个上传功能需要提供哪些功能,需要提前考虑:

  1. 单文件上传,上传进度展示,上传结果显示
  2. 多文件上传功能,上传进度展示,上传结果显示
  3. 是否支持拖拽上传
  4. 是否支持上传取消
  5. 是否支持大文件上传
  6. 是否支持断点续传
  7. 是否支持后台上传
  8. 上传格式(image/vedio/application 等等)是否有限制,哪些限制?
  9. 单次上传是否有数量限制
  10. 是否需要支持跨域上传
  11. 是否需要支持非HTML5 上传
  12. 是否需要权限认证
  13. 是否会触发web server 安全漏洞
  14. web server 最佳配置,nginx/apache sample
  15. 上传下载文件夹权限

当前实现

	/**
     * 模拟<a>标签点击下载文件
     * @param data
     * @param filename 
     */
    download(data: Blob, filename: string) {
        const objectUrl = window.URL.createObjectURL(data);
        const a = document.createElement('a');
        a.download = filename;
        a.href = objectUrl;
        a.click();
        a.remove();
        window.URL.revokeObjectURL(objectUrl); // 释放
    }

参考:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值