jyxzfw 发表于 2016-3-15 16:55:24

拍照上传功能

我要实现拍照并且上传功能。
// 上传图片到服务器
    var uploadPicture = function ( imageURI ){
var deferred= when.defer();
      var options = new FileUploadOptions();
      options.fileKey = "file";
      options.fileName = imageURI.substr(imageURI.lastIndexOf('/')+1);
      options.mimeType = "image/jpeg";

      var ft = new FileTransfer();
      // 上传回调
      $ionicLoading.show({
            template: "已经上传:0%"
      });
      ft.onprogress = function ( progressEvent ){
            $timeout(function () {
                var downloadProgress = (progressEvent.loaded / progressEvent.total) * 100;
                $ionicLoading.show({
                  template: "已经上传:" + Math.floor(downloadProgress) + "%"
                });
                if (downloadProgress > 99) {
                  $ionicLoading.hide();
                }
            })
      };

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

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

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

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

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

      string folder = "~/upLoad";

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

      if (file != null)
      {

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

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

      }
               

    }为什么每次上传进度快完成时就失败啊?求大神解答{:4_87:}

ionicwang 发表于 2016-3-15 18:12:02

1.需要文件插件文件传输插件安装一下
2.你先不要整进度条 然后上传试试
3.看看服务器接收到你的post请求了没有
4.打印返回的错误代码 看看具体是哪里的问题

jyxzfw 发表于 2016-3-15 16:58:29

服务端第十行,用file.FileName报错,“未将对象引用设置到对象的实例”。何也?

jyxzfw 发表于 2016-3-16 08:57:59

ionicwang 发表于 2016-3-15 18:12
1.需要文件插件文件传输插件安装一下
2.你先不要整进度条 然后上传试试
3.看看服务器接收到你的post请 ...

您真是位热心肠。第一段代码第五行改成    options.fileKey = "fileAddPic";并且服务端的存储路劲写死了。就OK了。
我还有个疑问就是:服务端第十行,用string fileName = file.FileName;报错,“未将对象引用设置到对象的实例”,不知道为什么。大神能帮忙解答吗{:4_106:}
页: [1]
查看完整版本: 拍照上传功能