gpt4 book ai didi

php - 无法下载文件 Symfony 3.4 和 VueJS

转载 作者:搜寻专家 更新时间:2023-10-30 22:50:41 25 4
gpt4 key购买 nike

我花了一些时间才问这个问题

我想从本地目录 /Users/Desktop/symfony/project_dem/app/Resources/file.webm, 下载文件,但我总是出错。

所以我的 Controller

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 的控制台日志

enter image description here

**

我发现错误的是为什么服务器中的文件大小为 6.2 MB 而下载后为 11.2 也许这是 BinaryFileResponse 错误?

**

谁能告诉我我做错了什么?谢谢。

最佳答案

所以看起来 console.log(response.data) 的输出显示的是一个二进制文件。我的意思是文件在那里。你说的不清楚

but I always get something wrong

试试这个

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 的行末放置分号。

关于php - 无法下载文件 Symfony 3.4 和 VueJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52237371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com