当前疑问
欢迎大家参与讨论留言
- Rest 接口返回
Content-Type:application/octet-stream
和Content-Disposition: attatchment;filename=hello.xls
理论上浏览器不能识别这种类型就应该自动弹出下载框,让用户选择保存路径然后下载,为什么还需要以上模拟点击下载文件??目前返回的内容在chrome network 面板里response 里面是下载的文件内容?? - javascript 怎么理解文件和文件流?
背景
最近在做一个文件上传功能,记录下需要考虑的知识点以及汇总下资料
功能规划
一个上传功能需要提供哪些功能,需要提前考虑:
- 单文件上传,上传进度展示,上传结果显示
- 多文件上传功能,上传进度展示,上传结果显示
- 是否支持拖拽上传
- 是否支持上传取消
- 是否支持大文件上传
- 是否支持断点续传
- 是否支持后台上传
- 上传格式(image/vedio/application 等等)是否有限制,哪些限制?
- 单次上传是否有数量限制
- 是否需要支持跨域上传
- 是否需要支持非HTML5 上传
- 是否需要权限认证
- 是否会触发web server 安全漏洞
- web server 最佳配置,nginx/apache sample
- 上传下载文件夹权限
当前实现
/**
* 模拟<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); // 释放
}