ionic3 cordova-plugin-file-transfer插件上传图片服务器接收不到数据
//打开相机
takePhoto() {
const options: CameraOptions = {
quality: 20, //相片质量0-100
destinationType: 1, //返回类型:DATA_URL= 0,返回作为 base64 編碼字串。 FILE_URI=1,返回影像档的 URI。NATIVE_URI=2,返回图像本机URI (例如,資產庫)
sourceType: 1, //从哪里选择图片:PHOTOLIBRARY=0,相机拍照=1,SAVEDPHOTOALBUM=2。0和1其实都是本地图库
encodingType: 0, //保存的图片格式: JPEG = 0, PNG = 1
targetWidth: 200, //照片宽度
targetHeight: 200, //照片高度
mediaType: 0, //可选媒体类型:圖片=0,只允许选择图片將返回指定DestinationType的参数。 視頻格式=1,允许选择视频,最终返回 FILE_URI。ALLMEDIA= 2,允许所有媒体类型的选择。
cameraDirection: 1, //枪后摄像头类型:Back= 0,Front-facing = 1
saveToPhotoAlbum: true
};
this.camera.getPicture(options).then(
image => {
//let imageData = 'data:image/jpeg;base64,' + image;
this.indoorimages.push(image);
// this.indoorimages.push(image);
// console.log(image);
this.imageUrl = image;
this.upload('indoor', '123456.jpeg');
console.log('拍照上传成功');
}, error => {
console.log('Error: ' + error);
});
}
/**
- 图片上传
*/
upload(fileKey, fileName) {
const FT: FileTransferObject = this.transfer.create();
const apiPath = encodeURI("https://www.kzfapp.com/api/Usedata/uploadimg");
let options: FileUploadOptions = {
fileKey: fileKey,
fileName: fileName, //文件名称
//httpMethod: 'PUT',
headers: {'Content-Type': 'text/html; charset= utf-8'},
// 如果要传参数,写这里
params: {
maxSize: 5000000,
modularName: 'CNL',
allowType: 'jpeg;jpg;png;pdf;doc;xls;xlsx;docx',
}
};
//注册监听上传进度
FT.onProgress = function(progressEvent) {
console.log(progressEvent);
};
console.log(this.imageUrl);
console.log(apiPath);
//开始上传
FT.upload(this.imageUrl, apiPath, options)
.then((data) => {
console.log('已拍好照片');
console.log(data);
}, (err) => {
console.log(err);
});
}
用真机拍照后,根本没调用API接口,如果我把FT.upload第一个参数换成空或错误地址,服务器API就有调用但参数都空的。如果用相机插件函数生成的地址,就根本不会调用服务器的API。用模拟器debug显示:
FileTransferError {
body: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">↵<html
xmlns="http://www.w3.org/1999/xhtml">↵<head>↵<meta http-equiv="Content-Type"
content="text/html; charset=gb2312"/>↵<title>500 - �ڲ����������</title>↵<style
type="text/css">↵<!--↵body{margin:0;font-size:.7em;font-family:Verdana, Arial,
Helvetica, sans-serif;background:#EEEEEE;}↵fieldset{padding:0 15px 10px 15px;}
↵h1{font-size:2.4em;margin:0;color:#FFF;}↵h2{font-size:1.7em;margin:0;color:#CC0000;} ↵
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;} ↵#header{width:96%;margin:0 0 0
0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-
serif;color:#FFF;↵background-color:#555555;}↵#content{margin:0 0 0
2%;position:relative;}↵.content-container{background:#FFF;width:96%;margin-
top:8px;padding:10px;position:relative;}↵-->↵</style>↵</head>↵<body>↵<div id="header">
<h1>���������</h1></div>↵<div id="content">↵ <div class="content-container">
<fieldset>↵ <h2>500 - �ڲ����������</h2>↵
<h3>����ҵ���Դ�������⣬�������ʾ��</h3>↵ </fieldset>
</div>↵</div>↵</body>↵</html>"
code: 1
exception: "https://www.kzfapp.com/api/Usedata/uploadimg"
http_status: 500
source: "file:///storage/emulated/0/Android/data/io.ionic.starter/cache/1524128399656.jpg"
target: "https://www.kzfapp.com/api/Usedata/uploadimg"
proto
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
问题解决了吗