提交 0f1ecd18 编写于 作者: Q qiang

fix(h5): 优化 downloadFile 文件名(当用于 uploadFile 等其他接口时用到)

上级 f4fd013c
......@@ -55,6 +55,16 @@ function getExtname (type) {
const extname = type.split('/')[1]
return extname ? `.${extname}` : ''
}
/**
* 简易获取文件名
* @param {*} url
*/
export function getFileName (url) {
url = url.split('#')[0].split('?')[0]
const array = url.split('/')
return array[array.length - 1]
}
/**
* blob转File
* @param {Blob} blob
......
import { fileToUrl } from 'uni-platform/helpers/file'
import {
fileToUrl,
getFileName
} from 'uni-platform/helpers/file'
/**
* 下载任务
*/
......@@ -63,6 +66,18 @@ export function downloadFile ({
clearTimeout(timer)
const statusCode = xhr.status
const blob = this.response
let filename
// 使用 getResponseHeader 跨域时会出现警告,但相比 getAllResponseHeaders 更方便
const contentDisposition = xhr.getResponseHeader('content-disposition')
if (contentDisposition) {
// 暂时仅解析 filename 不解析 filename*
const res = contentDisposition.match(/filename="?(\S+)"?\b/)
if (res) {
filename = res[1]
}
}
blob.name = filename || getFileName(url)
console.log(blob)
invoke(callbackId, {
errMsg: 'downloadFile:ok',
statusCode,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册