我是从我的api上传图像到S3并从另一个前端应用程序下载的。我看到一个白色方框而不是我上传到S3的实际图像。
API代码
收到回复后我正在阅读文件,我觉得这里有一个承诺问题,如何解决这个问题。正在执行函数时,不会返回Promise。我很感激帮助。
完成功能
$scope.done = function {
var s3Url;
var allURLs = [];
if($scope.files.length > 0){
Service.methods.createUrl(getExtension($scope.files[0].name), $scope.files[0].type).then((response) => {
s3URL = response.data.signedUrl;
allUrls.push(response.data.url);
return;
}).then(() => {
return fileReader($scope.files[0]);
}).then((data) => {
return Service.methods.putDataInS3(s3URL, data, $scope.files[0].type);
}).then(() => {
return createMsg(allUrls);
}).catch((error) => {
$log.error('Could not upload attachment.', error);
showError('Could not upload attachment.');
});
function fileReader(file){
var promiseReader = $q.defer();
var reader = new FileReader();
reader.readAsArrayBuffer(file);
reader.onload = function(){
// var result = reader.result;
promiseReader.resolve(reader.result);
};
reader.onError = function(){
$log.error('Error reading file.', reader.error);
promiseReader.reject(reader.error);
};
return promiseReader;
}