起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4465|回复: 12

[结贴] 录音后,上传的时候报错!

[复制链接]

72

主题

291

帖子

1158

积分

金牌会员

Rank: 6Rank: 6

积分
1158
QQ
发表于 2017-3-16 15:26:51 | 显示全部楼层 |阅读模式
本帖最后由 keyours 于 2017-3-16 15:36 编辑

如图所示:
调用cordova插件,录音之后生成了一个录音文件,SD卡的路径也是对的、然后传到对应的上传方法里面,提示如下错误,请帮忙看看
888.png


代码如下:

  1. // 前端传参上传
  2.         Model.prototype.uploadImage = function(imageURI) {
  3.                 alert("imageURI:===============" + imageURI);

  4.                 var options = new FileUploadOptions();
  5.                 options.fileKey = "file";// 用于设置参数
  6.                 options.fileName = imageURI;

  7.                 // 如果是图片格式,就用image/jpeg,其他文件格式上官网查API
  8.                 options.mimeType = "wav";
  9.                
  10.                 // 这里的uri根据自己的需求设定,是一个接收上传图片的地址
  11.                 var uri = encodeURI("http://172.16.3.133:8080/audio/upload");
  12.                     alert("url" + uri);

  13.                 options.chunkedMode = false;
  14.                 var params = new Object();
  15.                 params.id = "123";
  16.                 params.name = "test";
  17.                 options.params = params;

  18.                 // FileTransfer是一个允许你向服务器上传文件的对象
  19.                 var ft = new FileTransfer();
  20.                 function success(result) {
  21. //                        deferred.resolve(imageURI);            // 改变执行状态
  22.                         navigator.notification.progressStop(); // 关闭进度条
  23.                         alert("成功" + JSON.stringify(result));
  24.                         success(result.response);
  25.                 }

  26.                 function fail(message) {
  27.                         navigator.notification.progressStop(); // 关闭进度条
  28.                         alert("失败:" + JSON.stringify(message));
  29.                         fail(message.response);
  30.                 }

  31.                 // 上传回调
  32.                 ft.onprogress = showUploadingProgress;
  33.                 navigator.notification.progressStart("", "当前上传进度");
  34.                 ft.upload(imageURI, uri, success, fail, options);
  35.         };

  36.         // 显示上传进度
  37.         function showUploadingProgress(progressEvt){
  38.                 if (progressEvt.lengthComputable) {
  39.                         navigator.notification.progressValue(Math.round((progressEvt.loaded / progressEvt.total) * 100));
  40.                 }
  41.         }
复制代码






91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2017-3-16 16:20:40 | 显示全部楼层
确认服务端是否报错了
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

72

主题

291

帖子

1158

积分

金牌会员

Rank: 6Rank: 6

积分
1158
QQ
 楼主| 发表于 2017-3-16 16:40:36 | 显示全部楼层
本帖最后由 keyours 于 2017-3-16 16:44 编辑
jishuang 发表于 2017-3-16 16:20
确认服务端是否报错了

还没执行到服务器上传的代码,如图:

777.png


代码如下:
  1. // 上传文件
  2.         @SuppressWarnings("deprecation")
  3.         public static void upLoadFile(HttpServletRequest request, String relativePath) throws IOException {
  4.                 File file1 = null;
  5.                 String fileName = "";
  6.                 System.out.println("userID=" + request.getParameter("userID"));

  7.                 // 获取根路径
  8.                 String savePath = (request.getSession().getServletContext().getRealPath(""));

  9.                 // 设置保存路径
  10.                 String savaPath = savePath + relativePath;

  11.                 // 判断是否存在路径,不存在则创建
  12.                 File file = new File(savaPath);
  13.                 if (!file.isDirectory()) {
  14.                         file.mkdir();
  15.                 }

  16.                 savePath += "\";

  17.                 // 通过这个类与APACHE文件进行交互
  18.                 DiskFileUpload disFileUpload = new DiskFileUpload();
  19.                 try {
  20.                         List<FileItem> list = disFileUpload.parseRequest(request);
  21.                         for (FileItem fileItem : list) {
  22.                                 if (fileItem.isFormField()) {
  23.                                         System.out.println(fileItem.getFieldName() + ":" + fileItem.getString());
  24.                                 } else {
  25.                                         if ("fileAddPic".equals(fileItem.getFieldName())) {
  26.                                                 File remoteFile = new File(new String(fileItem.getName().getBytes(), "UTF-8"));
  27.                                                 System.out.println("开始遍历.....");
  28.                                                 file1 = new File("C:/BeX5_V3.6/apache-tomcat/webapps/vedio/uploadVedio/" // 写入的位置,从相册中选择的图片没有后缀,需要自己处理下
  29.                                                                 + fileItem.getName());

  30.                                                 
  31.                                                 System.out.println("file1文件路径:"+file1);
  32.                                                 
  33.                                                 // fileItem.getName()用于获取上传字段中的文件名,对应前台的options.FileName
  34.                                                 System.out.println("上传文件的大小:" + fileItem.getSize());
  35.                                                 System.out.println("上传文件的类型:" + fileItem.getContentType());
  36.                                                 System.out.println("上传文件的名称:" + fileItem.getName());

  37.                                                 // 获取输入输出流
  38.                                                 InputStream ins = fileItem.getInputStream();
  39.                                                 OutputStream ous = new FileOutputStream(file1);

  40.                                                 // 存储文件
  41.                                                 try {
  42.                                                         byte[] buffer = new byte[1024];
  43.                                                         int len = 0;
  44.                                                         while ((len = ins.read(buffer)) > -1) {
  45.                                                                 ous.write(buffer, 0, len);
  46.                                                         }
  47.                                                 } finally {
  48.                                                         ous.close();
  49.                                                         ins.close();
  50.                                                 }
  51.                                         }
  52.                                 }
  53.                         }
  54.                 } catch (FileUploadException e) {
  55.                         e.printStackTrace();
  56.                 }
  57.         }
复制代码



回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2017-3-16 17:20:49 | 显示全部楼层
确认http://172.16.3.133:8080/audio/upload这个地址在手机上可以请求到吗?
最好是真机调试看看console中的错误信息,看看network中请求的url是否都正确
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

72

主题

291

帖子

1158

积分

金牌会员

Rank: 6Rank: 6

积分
1158
QQ
 楼主| 发表于 2017-3-16 17:40:06 | 显示全部楼层
本帖最后由 keyours 于 2017-3-16 17:48 编辑
jishuang 发表于 2017-3-16 17:20
确认http://172.16.3.133:8080/audio/upload这个地址在手机上可以请求到吗?
最好是真机调试看看console中 ...

我看了下提示信息
open failed eacces permission denied:打开失败eacces权限被拒绝

8888.png
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2017-3-16 17:48:53 | 显示全部楼层
应该是手机权限的问题
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

72

主题

291

帖子

1158

积分

金牌会员

Rank: 6Rank: 6

积分
1158
QQ
 楼主| 发表于 2017-3-16 18:09:40 | 显示全部楼层
jishuang 发表于 2017-3-16 17:48
应该是手机权限的问题

我看了一下网上说是没加入权限:
369.png


那x5里面怎样处理呢?


回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2017-3-17 09:25:58 | 显示全部楼层
/Native/templates/advanced/platforms/android/AndroidManifest.xml
中可以自己添加配置
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

72

主题

291

帖子

1158

积分

金牌会员

Rank: 6Rank: 6

积分
1158
QQ
 楼主| 发表于 2017-3-17 14:19:13 | 显示全部楼层
之前那个问题OK了,现在提示这个是啥意思,手机上是可以找到这个上传地址的,就是把文件上传到服务器里面去的时候提示错误?

我想问下,后台是一个HttpServletRequest request请求,我在前台是用的BIZ调用的,这样可以吗?
还是说需要建立一个Servlet服务?

9999.png

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2017-3-17 15:25:06 | 显示全部楼层
404是没找到资源,最好是真机调试看看具体那个url报的404的错误
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-24 05:49 , Processed in 0.110763 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表