当前位置:编程学习 > wap >>

phonegap上传照片后,用java写的后台获取到的数据流没数据

以下是js部分代码:

 function uploadPhoto(imageURI) {
                   var options = new FileUploadOptions();
                   options.fileKey="file";
                   options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
       options.mimeType="image/jpeg";
       //options.mimeType="multipart/form-data";
               options.chunkedMode = false;
                   var params = new Object();
                   params.service = "page/demos.phoneApi";  //java类对于的映射
                   params.listener = "uploadImage";   //后台调用的方法
                   options.params = params;
            
   var ft = new FileTransfer(); 
   alert(imageURI);
   ft.upload(imageURI, "http://192.168.2.114:7001/gridsalemanm", win, fail, options); 
             }

function win(r) { 
alert("Code = " + r.responseCode);
alert("Response = " + r.response);
alert("Sent = " + r.bytesSent);
$("#codetext").text(r.response);


function fail(error) { 
alert("An error has occurred: Code = " = error.code);
}

// 当成功得到一张照片的URI后被调用
function onPhotoURISuccess(imageURI) {
// 获取图片句柄
var $largeImage = $("#largeImage");
$largeImage.show();

// 显示拍摄的照片
$largeImage.attr("src",imageURI);
//上传图片
uploadPhoto(imageURI);
}

function fail(error) { 
alert("An error has occurred: Code = " = error.code);
}

$("#show_pic3").bind("tap",function(){
// 从设定的来源处获取图像文件URI
navigator.camera.getPicture(onPhotoURISuccess, onFail, {
quality : 50
});
});
以下是html的部分代码:
<img  id="largeImage" src="" style="display:none"/>
以下是java后天代码:
public void uploadImage(IRequestCycle cycle) throws Exception
{
PageData pd = getPageData();
IData data = pd.getData();
HttpServletRequest request = pd.getRequest();
int test = request.getContentLength();
String test3 = request.getParameter("listener"); 
ServletInputStream  is = request.getInputStream();
FileOutputStream fos = new FileOutputStream("D:\\out.txt");

byte[] buff = new byte[2048];
int len = is.read(buff);

while(len != -1)
{
fos.write(buff,0,len);
len = is.read(buff);
}
is.close();
fos.close();

// DiskFileItemFactory factory = new DiskFileItemFactory();
// ServletFileUpload uploader = new ServletFileUpload(factory);
//
// int test = pd.getRequest().getContentLength();
//
// List list = null;
//
// Iterator iter = list.iterator();
// while (iter.hasNext())
// {
// FileItem item = (FileItem) iter.next();
// if (!item.isFormField()) 
// {
//         String name = item.getName();
//          long size = item.getSize();
//          if((name==null||name.equals("")) && size==0)
//          {
//          continue;
//          }
// }
// }

}
  

现在的问题就是用phonegap把图片传到服务器的时候,前台js能成才运行并能调用上传成功后的回调函数,问题就是进入后台后int len = is.read(buff);这个len位-1,也就是数据流数据为空,没取到照片的信息,求高手帮忙看看,小弟不甚感激。 --------------------编程问答-------------------- 没人啊,自己顶一个 --------------------编程问答-------------------- 楼主有没有解决这个问题呢,我也有这个问题
补充:移动开发 ,  移动开发其他问题
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,