山川同学
山川同学
  • 发布:2015-04-10 16:23
  • 更新:2015-04-13 14:45
  • 阅读:1610

跨平台上传文件问题

分类:HTML5+

相同的上传代码,调用同一个nodejs服务端。为什么ios可以上传成功,安卓不行,提示连接中断。求指教

2015-04-10 16:23 负责人:无 分享
已邀请:
DCloud_heavensoft

DCloud_heavensoft

贴代码,@DCloud_App_Array

  • 山川同学 (作者)

    /上传语音客户端/

    mui(document).on('tap',".sendRecord",function (){

    var type =Number(this.getAttribute("record-type"));

    var wt=plus.nativeUI.showWaiting();

    var files = "_doc/audio/"+plus.storage.getItem("recordFileName");

    var param = 'channelID='+plus.storage.getItem("channelID")+'&accountID='+plus.storage.getItem("accountID")+'&duration='+strToTime(rt[type].innerText);

    var server = config.requestURL+'app/uploadVoice?'+param;

    var task=plus.uploader.createUpload(server,{method:"POST",retry:2},function(t,status){

    if(status==200){

    var data = JSON.parse(t.responseText);

    if(data.ERRORCODE=="0"){

    mui.toast("发送成功");

    }else{

    mui.toast("发送失败");

    }

    cleanHistory();//清楚录音历史记录

    stopPlay(type);//停止播放之前录音

    rt[type].innerText=type?"点击录音":"按住说话";

    pr[type].style.display="none";

    sr[type].style.display="none";

    getLiveVoice($("interactMain").firstChild.getAttribute("data-time"),getTimeStamp(0)+10000);

    wt.close();

    }else{

    mui.toast("上传失败:"+status);

    wt.close();

    }

    }

    );

    task.addFile(files,{key:"Recorder_001.wav"});

    task.addData("uid",getUid());

    task.start();

    });

    2015-04-10 21:30

  • 山川同学 (作者)

    还有一个问题,在官方的录音例子中。如果录音的文件格式amr,在安卓下是可以播放的,在ios里播放不了

    2015-04-10 21:41

  • DCloud_heavensoft

    回复 山川同学: ios在os层面就不支持arm播放。如果非要播放arm,建议写个原生sdk解码

    2015-04-10 22:21

  • 山川同学 (作者)

    回复 DCloud_heavensoft:好的明白了,那安卓端的上传问题怎么解决?是因为断点续传问题吗?

    2015-04-10 22:23

  • 山川同学 (作者)

    回复 DCloud_heavensoft:安卓上传文件和ios上传文件的处理机制有哪儿不一样的。

    2015-04-13 09:36

DCloud_App_Array

DCloud_App_Array

请把完整的应用zip后发出来,需要你的服务器能从外网访问。
有可能是http协议层缺某些头信息导致的错误(iOS系统能容错,而Android平台无法容错)
@DCloud_Android_磊子

山川同学

山川同学 (作者)

代码见附件,发送地址在config.js里配置

  • DCloud_App_Array

    无法登录呀,怎么使用?给个账号和操作步骤呗。

    2015-04-13 20:21

  • 山川同学 (作者)

    我使用了抓包工具,看到安卓上传文件的时候content-type不是multipart/form-data;请问怎么在客户端设置请求头呢?

    2015-04-14 10:24

该问题目前已经被锁定, 无法添加新回复