我正在尝试为某些站点开发一个移动应用程序,该应用程序使用 HTML 表单进行数据传输。目前我正在为 Android 开发,但这个应用程序也应该在 iOS 和 WP7 上(这就是我选择 PhoneGap 的原因)。
我使用的表单有<input type="file">
标签,我应该通过它传递图像本身,因为我无法访问服务器部分。
我试过的:
- 使用
<input type="file">
表单上的标签,但不会打开文件选择器对话框。 使用 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 来传递图像,因为我无法访问表单并且所有数据都必须是完整的。