文件始终以 PDF 格式下载 rails
File always downloaded as PDF in rails
我在我的 rails 应用程序中定义了一个上传器。我在这里面临的问题是,当我下载上传的文件时,它被下载为 PDF 而不是文件的实际格式。
class DocumentController < MyAccountController
def show
@agency = current_agency
redirect_to @agency.document.url
end
end
这是文件的url。但文件始终以 PDF 格式下载
"http://localhost:3000/uploads/agency/document/61/document.jpeg"
下载文件的方法。
<script>
downloadDocument() {
var url = 'myagency/document',
fileName = "EngagementLetter",
file;
this.$axios.get(url, { responseType: 'blob' })
.then(response => {
file = new Blob(
[response.data],
{ type: 'application/pdf, image/gif, image/jpeg' }
);
FileSaver.saveAs(file, fileName);
});
}
</script>
我遇到过类似的问题,以下对我有用。
var url = 'myagency/document',
fileName = "EngagementLetter",
axios.get(url, { responseType: 'blob' })
.then(response => {
console.log(response.data)
const url = window.URL.createObjectURL(response.data)
const link = document.createElement('a')
link.href = url
link.setAttribute('download', fileName )
document.body.appendChild(link)
link.click()
link.remove()
});
您会注意到 response.data
在控制台中是 Blob {size: ####, type: "image/jpeg"}
。您没有指定类型。
我在我的 rails 应用程序中定义了一个上传器。我在这里面临的问题是,当我下载上传的文件时,它被下载为 PDF 而不是文件的实际格式。
class DocumentController < MyAccountController
def show
@agency = current_agency
redirect_to @agency.document.url
end
end
这是文件的url。但文件始终以 PDF 格式下载
"http://localhost:3000/uploads/agency/document/61/document.jpeg"
下载文件的方法。
<script>
downloadDocument() {
var url = 'myagency/document',
fileName = "EngagementLetter",
file;
this.$axios.get(url, { responseType: 'blob' })
.then(response => {
file = new Blob(
[response.data],
{ type: 'application/pdf, image/gif, image/jpeg' }
);
FileSaver.saveAs(file, fileName);
});
}
</script>
我遇到过类似的问题,以下对我有用。
var url = 'myagency/document',
fileName = "EngagementLetter",
axios.get(url, { responseType: 'blob' })
.then(response => {
console.log(response.data)
const url = window.URL.createObjectURL(response.data)
const link = document.createElement('a')
link.href = url
link.setAttribute('download', fileName )
document.body.appendChild(link)
link.click()
link.remove()
});
您会注意到 response.data
在控制台中是 Blob {size: ####, type: "image/jpeg"}
。您没有指定类型。