sunshun123 2014-11-01 05:13 采纳率: 0%
浏览 1402

phonegap拍摄照片并上传文件到服务器

我们项目是springmvc架构的,我现在写了一个页面,页面要嵌入在别的项目组的app中,现在可以调用phonegap中的摄像头拍摄照片并返回图片在手机中的路径,现在我要用phonegap上传图片到我们的服务器中,我是这么写的
var options = new FileUploadOptions();
options.fileKey="file";
options.fileName=picUrl.substr(picUrl.lastIndexOf('/')+1);
options.mimeType="image/jpeg";
var ft = new FileTransfer();
ft.upload(picUrl, "http://117.40.138.121/mobilecar/sale /ocr/ocrRecon", win, fail, options);
其中mobilecar是我们的项目,sale/ocr使用spring注解写的我们的类,ocrRecon是类中的读取图片流的方法。现在在页面中点击上传图片按钮,上传图片的进度条显示为0%,还提示初始化失败。项目太急了快被领导骂了,哪位大神做过给分析分析,万分感谢。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-03 00:28
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    你已经正确地定义了FileTransfer对象,并且设置了一些属性。然而,你的代码似乎有误,因为当你尝试上传文件时,它并没有成功。这里有一些可能的问题和解决方案:

    1. 确保你的服务器端代码正在接收POST请求,并且正确处理了multipart/form-data类型的数据。
    2. 确保你的服务器端代码正确处理了fileName参数,并将它与你的客户端代码传递过来的值匹配起来。
    3. 确保你的客户端代码没有错误地将文件名设为空字符串(这会导致上传失败)。

    以下是一个示例代码片段,展示了如何实现上述步骤:

    var options = new FileUploadOptions();
    options.fileKey = "file";
    options.fileName = picUrl.substr(picUrl.lastIndexOf('/') + 1);
    options.mimeType = "image/jpeg";
    options.maxFileSize = 5 * 1024 * 1024; // 5 MB
    options.requestType = 'post';
    
    var fileTransfer = new FileTransfer();
    fileTransfer.upload(picUrl, "/path/to/upload", function(file) {
        console.log("File uploaded successfully.");
    }, function(err) {
        console.error("Error uploading file: ", err);
    }, options);
    

    在这个示例中,我添加了maxFileSize属性来限制文件大小,以避免上传超大的文件。此外,我还修改了winfail回调函数的签名,以便它们能够接受一个包含响应数据的对象作为参数。

    希望这些信息对你有所帮助!如果你还有其他问题,请随时提问。

    评论

报告相同问题?