在使用Autodesk Forge下载文件时,如果下载的文件名与实际文件名不同,可能是由于下载位置不正确或文件名被更改导致的。
下面是一个示例代码来下载Forge中的文件,并将其保存到本地文件夹中:
var url = '/oss/v2/buckets/' + bucketKey + '/objects/' + objectName + '/signed';
$.ajax({
url: url,
type: 'GET',
headers: {
'Authorization': 'Bearer ' + token
},
success: function (res) {
var a = document.createElement('a');
a.href = res.signedUrl;
var filename = a.href.split('/').pop();
var xhr = new XMLHttpRequest();
xhr.open('GET', res.signedUrl, true);
xhr.setRequestHeader('Authorization', 'Bearer ' + token);
xhr.responseType = 'blob';
xhr.onload = function (e) {
if (this.status === 200) {
var downloadUrl = window.URL.createObjectURL(this.response);
var downloadLink = document.createElement('a');
downloadLink.href = downloadUrl;
downloadLink.download = filename;
document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);
window.URL.revokeObjectURL(downloadUrl);
}
};
xhr.send();
}
});
在这个示例中,我们在服务器端检索签名URL,该URL可以允许项目在浏览器中进行传输。然后,我们通过XMLHttpRequest对象将该URL传递给浏览器,并在获取响应后下载该文件。响应是一个Blob对象,可以使用URL.createObjectURL创建URL以从浏览器中下载。Blob本身并不包含文件名,因此我们从URL中提取文件名并将其用作下载链接的名称。
确保在代码中使用正确的文件名和路径,以便在下载文件时能够保存具有正确名称的文件。