android - 在 Android 上通过 HTML FIleUpload 将图片上传到服务器

标签 android html cordova file-upload

我正在尝试为某个站点开发移动应用程序,该应用程序使用 HTML 表单进行数据传输。 目前我正在为 Android 开发,但这个应用程序应该也适用于 iOS 和 WP7(这就是我选择 PhoneGap 的原因)。

我使用的表单有 <input type="file">标签,我应该通过它传递图像本身,因为我无法访问服务器部分。

我尝试过的:

  1. 使用<input type="file">标记在表单上,​​但它不会打开文件选择器对话框。
  2. 使用 PhoneGap 方法获取 base64 格式的图像并将其附加到表单参数,但服务器无法将它们识别为有效文件。 为了完成这个,我正在使用下一个功能:

    function fileUpload (url, fileData, fileName) {
    
    var fileSize = fileData.length,
        boundary = "12352134",
        xhr = new XMLHttpRequest();
    
    xhr.open("POST", url, true);
            // simulate a file MIME POST request.
    xhr.setRequestHeader("Content-Type", "multipart/form-data, boundary="+boundary);
    xhr.setRequestHeader("Content-Length", fileSize);
    
    var body = "--" + boundary + "\r\n";
    body += 'Content-Disposition: form-data; name="imagen"; filename="' + fileName + '"\r\n';
    body += "Content-Type: image/jpeg\r\n\r\n";
    body += fileData + "\r\n";
    body += "--" + boundary + "--";
    
    xhr.send(body);
    return true;
    

我不能使用 Ajax 仅传递图像,因为我无权访问表单并且所有数据都必须是完整的。

最佳答案

input[type=file] 不会在所有设备上一致地工作。版本 6 以下的 iOS 设备将完全不支持它。但是,PhoneGap 确实允许您访问文件系统。您可以提供另一种选择文件的方式。请参阅文件系统文档:http://docs.phonegap.com/en/2.1.0/cordova_file_file.md.html#File

这些也讨论了 FileTransfer 对象。这会让您上传文件。

关于android - 在 Android 上通过 HTML FIleUpload 将图片上传到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12771272/

相关文章:

javascript - getElementsByName ('q' )[0] 返回未定义

android - Ionic 3 Android 构建错误(找不到 support-v4.jar)

javascript - 如何使用 Javascript 在 Safari HTML5 播放器中使用 iOS 锁屏上一个/下一个播放器按钮

javascript - Html——如何为输入文本字段添加编辑器?

java - Android - 如何在位图上放置颜色?

java堆空间

android - 将 AngularJS 连接到 Phonegap/Cordova

ios - 背景音频不适用于 iOS 上的 Ionic3 + Videogular2

java - 尝试在 Android 应用程序(java)上设置静音按钮

java - 面向对象设计: getter method (or object) visibility