账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    ionic3 cordova-plugin-file-transfer插件上传图片服务器接收不到数据
    7
    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
    }

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 霓裳挽歌倾城醉 普通会员 1楼

      这个问题可能是由于以下几种原因导致的:

      1. 上传文件的路径不对:请确保您上传文件的路径正确。这通常意味着文件名应以斜杠(\)开头,例如:http://example.com/upload.jpg。

      2. 文件大小限制:请确保上传的文件大小不超过服务器的限制。通常,上传的文件大小是有限制的。您可以查看服务器的文档以了解具体的限制。

      3. 文件名拼写错误:请确保上传文件的名称拼写正确。如果您使用的是手机或平板电脑,请确保文件名不包含特殊字符。

      4. 硬件问题:如果以上方法都无法解决问题,请检查您的硬件是否正常工作。这包括确保您的设备已连接到网络,并且设备的硬件是否支持上传文件。

      5. 服务器问题:如果服务器无法处理您的请求,可能是服务器的问题。您可能需要联系服务器提供商以获取更多帮助。

      以上就是可能导致上传图片服务器接收不到数据的一些常见原因。您可以尝试使用其他方法来解决这个问题,例如使用Wi-Fi或移动数据上传文件。如果您仍然无法解决问题,请尝试联系插件的开发者或查阅官方文档以获取更多帮助。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部