ionic3 cordova-plugin-file-transfer插件上传图片服务器接收不到数据

发布于 2022-09-07 00:04:06 字数 3653 浏览 8 评论 0

//打开相机
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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

荒岛晴空 2022-09-14 00:04:06

问题解决了吗

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文