问题描述
我正在尝试使用cordova文件传输插件和服务器上的php脚本,将我的cordova应用程序中的文件上传到s3存储桶中,以保持我的AWS凭证。 我之所以选择这种方法,是因为由于我不是专业的程序员,因此对我来说更容易实现。 但是问题是我似乎无法使我的应用上载成功。 只是什么都没显示。
但是,当我从普通的html格式上传文件时,它可以正常工作, 像这样
<form action="itemImages_upload-copy.php" method="POST" enctype="multipart/form-data">
<input type="file" name="image" />
<button type="submit">Button</button>
</form>
请协助! 我不知道我在做什么错。
这是我的cordova javascript:
document.getElementById('itemUpload_btn').addEventListener('click',upload_itemPics);
function upload_itemPics() {
var imagesUploaded = 0;
var itempics = dmx.parse('images.items')
itempics.forEach(uploadImage);
function uploadImage(itemPic) {
var options = new FileUploadOptions();
options.fileKey = "file";
options.fileName = itemPic.substr(itemPic.lastIndexOf('/') + 1);
options.mimeType = "image/jpeg";
options.httpMethod = "POST";
options.headers = {
Connection: "close"
};
var params = {};
params.value1 = "test";
params.value2 = "param";
options.params = params;
options.chunkedMode = false;
var ft = new FileTransfer();
ft.upload(itemPic,"https://test.makitiplus.com/itemImages_upload-copy.php",function (result) {
dmx.app.set('ItemPicLink',result.response);
dmx.app.set('loadingMsg','Uploaded ' + imagesUploaded + '/' + itempics.length);
imagesUploaded++;
if (imagesUploaded === itempics.length) {
setTimeout(dmx.app.set('uploadStatus','images Uploaded'),500);
dmx.app.set('loadingMsg','Uploading Audio');
uploadAudio();
closeLoading();
}
},function (error) {
alert('error : ' + JSON.stringify(error));
},options);
}
}
这是我的PHP代码
<?php
if(isset($_FILES['image'])){
$new_image_name = "itemImg_".md5(uniqid()).".jpg";
$file_name = $_FILES['image']['name'];
$temp_file_location = $_FILES['image']['tmp_name'];
require 'vendor/autoload.php';
$s3 = new Aws\S3\S3Client([
'region' => 'eu-west-3','version' => 'latest','credentials' => [
'key' => "AKIAXBDN5WFIABIKD4AV",'secret' => "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",]
]);
$result = $s3->putObject([
'Bucket' => 'mk-itemimages','Key' => $new_image_name,'SourceFile' => $temp_file_location,'ACL' => 'public-read'
]);
echo $result['ObjectURL'];
}
?>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)