我花了很多时间才问这个问题
我想从本地目录/Users/Desktop/symfony/project_dem/app/Resources/file.webm,
下载文件,但是我总是出错。
所以我的控制器
public function getUrl(Request $request)
{
$response = new BinaryFileResponse($file);
$response->setAutoEtag(true);
$response->headers->set('Content-Type', 'video/webm');
return $response;
}
在VueJS中
axios.post('/api', {
url: this.url,
responseType: 'blob',
}).then((response) => {
console.log(response.data);
let blob = new Blob([response.data], {
type: 'video/webm'
}),
url = window.URL.createObjectURL(blob);
window.open(url);
}).catch(error => {
console.log(error);
});
我进入response.data
这样的控制台日志
**
**
谁能告诉我我做错了什么?谢谢。
答案 0 :(得分:0)
因此, console.log(response.data)的输出似乎显示了一个二进制文件。我的意思是文件在那里。您说
不清楚但是我总是出错了
尝试
axios.post('/api', {
url: this.url,
responseType: 'blob',
}).then((response) => {
let blob = new Blob([response.data], {
type: 'video/webm'
});
url = window.URL.createObjectURL(blob);
window.open(url);
}).catch(error => {
console.log(error);
});
我认为这里的问题是,您没有在创建Blob的行的末尾放置半冒号。