PhoneGap中文网

 找回密码
 立即注册
查看: 15233|回复: 3
打印 上一主题 下一主题

拍照上传功能

[复制链接]

55

主题

127

帖子

584

积分

高级会员

Rank: 4

积分
584
跳转到指定楼层
楼主
发表于 2016-3-15 16:55:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我要实现拍照并且上传功能。
  1. // 上传图片到服务器
  2.     var uploadPicture = function ( imageURI ){
  3. var deferred  = when.defer();
  4.         var options = new FileUploadOptions();
  5.         options.fileKey = "file";
  6.         options.fileName = imageURI.substr(imageURI.lastIndexOf('/')+1);
  7.         options.mimeType = "image/jpeg";

  8.         var ft = new FileTransfer();
  9.         // 上传回调
  10.         $ionicLoading.show({
  11.             template: "已经上传:0%"
  12.         });
  13.         ft.onprogress = function ( progressEvent ){
  14.             $timeout(function () {
  15.                 var downloadProgress = (progressEvent.loaded / progressEvent.total) * 100;
  16.                 $ionicLoading.show({
  17.                     template: "已经上传:" + Math.floor(downloadProgress) + "%"
  18.                 });
  19.                 if (downloadProgress > 99) {
  20.                     $ionicLoading.hide();
  21.                 }
  22.             })
  23.         };

  24.         ft.upload( imageURI, encodeURI('http://XXX.XXX.XXX.XXX:XX/OaJsonServiceTest/PhotoAndUploadService/UploadPhoto.ashx')
  25.           , function(data){
  26.             alert("成功");
  27.             deferred.resolve( imageURI );
  28.         } , function(err){
  29.             alert("失败");
  30.         }, options);
  31.         return deferred.promise;
  32.     };
复制代码
以上是上传的方法。
服务端我也不会写,就网上down了一个大神"神色自若"的代码,如下:
  1. public void ProcessRequest (HttpContext context) {
  2.         context.Response.ContentType = "text/plain";

  3.         context.Response.Charset = "utf-8";

  4.         HttpPostedFile file = context.Request.Files["fileAddPic"];

  5.         // fileAddPic为app端FileUploadOptions传入参数,此点非常重要

  6.         string fileName = "123.jpeg";//file.FileName;

  7.         string folder = "~/upLoad";

  8.         string uploadPath = HttpContext.Current.Server.MapPath(folder + "\\");

  9.         if (file != null)
  10.         {

  11.             file.SaveAs(uploadPath + fileName);
  12.             context.Response.Write("上传OK");
  13.         }

  14.         else
  15.         {
  16.             context.Response.Write("上传失败");

  17.         }
  18.                

  19.     }
复制代码
为什么每次上传进度快完成时就失败啊?求大神解答

回复

使用道具 举报

11

主题

529

帖子

1418

积分

金牌会员

Rank: 6Rank: 6

积分
1418
推荐
发表于 2016-3-15 18:12:02 | 只看该作者
1.需要  文件插件  文件传输插件安装一下
2.你先不要整进度条 然后上传试试
3.看看服务器接收到你的post请求了没有
4.打印返回的错误代码 看看具体是哪里的问题
回复 支持 1 反对 0

使用道具 举报

55

主题

127

帖子

584

积分

高级会员

Rank: 4

积分
584
沙发
 楼主| 发表于 2016-3-15 16:58:29 | 只看该作者
服务端第十行,用file.FileName报错,“未将对象引用设置到对象的实例”。何也?
回复 支持 反对

使用道具 举报

55

主题

127

帖子

584

积分

高级会员

Rank: 4

积分
584
地板
 楼主| 发表于 2016-3-16 08:57:59 | 只看该作者
ionicwang 发表于 2016-3-15 18:12
1.需要  文件插件  文件传输插件安装一下
2.你先不要整进度条 然后上传试试
3.看看服务器接收到你的post请 ...

您真是位热心肠。第一段代码第五行改成    options.fileKey = "fileAddPic";  并且服务端的存储路劲写死了。就OK了。
我还有个疑问就是:服务端第十行,用string fileName = file.FileName;报错,“未将对象引用设置到对象的实例”,不知道为什么。大神能帮忙解答吗
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐 上一条 /1 下一条

ionic4视频教程

Archiver|手机版|小黑屋| PhoneGap中文网 ( 京ICP备13027796号-1 )  

GMT+8, 2024-11-23 07:40 , Processed in 0.085333 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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