使用ng-cordova
file-Transfer插件将图片上传到AWS s3 bucket
。
但是我遇到了两个问题,首先它没有用,第二个我不知道如何在App上运行App时调试问题。
这是我的代码:
.controller('newItemCtrl', function($scope, $http, API_URL, me, $cordovaFileTransfer) {
var s3URI = encodeURI("https://mybucketname.s3.amazonaws.com/"),
policyBase64 = "MY_BASE64_ENCODED_POLICY_FILE",
signature = "MY_BASE64_ENCODED_SIGNATURE",
awsKey = 'my AWSAccessKeyId',
acl = "public-read";
var options = {
fileKey: "avatar",
fileName: "image.png",
chunkedMode: false,
mimeType: "image/png"
// params = {
// "key": fileName,
// "AWSAccessKeyId": awsKey,
// "acl": acl,
// "policy": policyBase64,
// "signature": signature,
// "Content-Type": "image/png"
// }
};
var imageURI = '../img/ionic.png';
$scope.upload = function($cordovaFileTransfer) {
$cordovaFileTransfer.upload(s3URI, imageURI, options)
.then(function(result) {
console.log("SUCCESS: " + JSON.stringify(result.response));
}, function(err) {
console.log("ERROR: " + JSON.stringify(err));
}, function(progress) {
// constant progress updates
});
}
})
我还留下了params代码来询问另一个被评论的问题,但是在我运行我的应用程序之前它给了我一个错误的参数但是我的问题为什么我甚至在调用与该控制器相关的模板之前就得到了错误
答案 0 :(得分:1)
我有一个类似的问题,调试我使用实时服务器日志检查并查看文件上传是否完全命中服务器,我发现了一些错误:
然后,我还安装了cordova原生通知插件(链接here),并在整个文件传输回调中发出警报,以查看事情陷入困境
无论如何可能不是调试的最佳方式,但它确实有用。
希望有所帮助。
......在以这种格式应用时,“选项”的参数部分似乎最有效:
var options = {
fileKey: "avatar",
fileName: "image.jpg",
/*params: {
"value1":"value1",
"value2": "value2"
}*/
};
var params = new Object();
params.value1 = "value1";
params.value2 = "value2";
options.params = params;
答案 1 :(得分:0)
要在模拟器上进行调试,请在我的应用目录中使用:ionic emulate ios -lc
这会向我显示错误或登录到控制台。