0
我使用Angular上传图像到s3存储桶,使用从我的Laravel服务器接收的预先设置的URL。从角度上传已签名的图像到s3 - 图像不出现
该文件似乎正确地上传正确的内容类型。如果我的角度上载后的S3文件点击PUT
的到S3,我得到:
Object: dog-aromatherapy.jpg
Bucket: dderesources
Name: dog-aromatherapy.jpg
Link: This is a public link -> https://s3.amazonaws.com/dde.resources/dog-aromatherapy.jpg
Size: 28660
Last Modified: Tue Jun 14 14:51:13 GMT-400 2016
Owner: myusername
ETag: f478788943af2296223a0f45a9c50610
Expiry Date: None
Expiration Rule: N/A
元数据是正确的,因为image/jpeg
:
但实际的文件大小为27.9kb
,意思是headers
大小28.6kb
预计会有一个额外的〜700b左右的缺失...
当我在图像上点击查看,它显示了一个白色MINIBOX:
自己尝试一下:https://s3.amazonaws.com/dderesources/dog-aromatherapy.jpg
角上传代码:
var upload_file = function (file, response) {
var formData = new FormData();
formData.append('image', file);
return $http({
method: 'PUT',
url: response.signed_request,
data: formData,
headers: {
'Content-Type': file.type
},
cache: true
});
};
这是为什么?
使用下面的语句改为'dderesources',这并没有解决这个问题。左边大小的文件是“27.9kb”,但是当我点击文件上的“视图属性”时,显示的大小是“28660”或“28.6kb”。如果我下载该文件并尝试打开它,则表示“它可能已损坏或使用预览无法识别的文件格式。” – Growler
尝试在角度上传代码中将该http更改为https。 –
角度'$ http'会根据需要更改:http://stackoverflow.com/questions/18839524/how-to-use-https-in-angularjs – Growler