【发布时间】:2011-06-14 06:17:27
【问题描述】:
我目前正在使用 PhoneGap 从移动设备的摄像头获取 base64 编码图像,我想将图像上传到服务器然后存储。不确定正确的方法是什么?
正如预期的那样,如果我尝试将 base64 字符串作为参数包含在内,我会收到错误 414 (Request-URI Too Large)
【问题讨论】:
标签: android ajax image cordova
我目前正在使用 PhoneGap 从移动设备的摄像头获取 base64 编码图像,我想将图像上传到服务器然后存储。不确定正确的方法是什么?
正如预期的那样,如果我尝试将 base64 字符串作为参数包含在内,我会收到错误 414 (Request-URI Too Large)
【问题讨论】:
标签: android ajax image cordova
即使您使用 POST,接受 POST 的服务器也需要能够解码 base64 参数。幸运的是,PhoneGap API 通过FileTransfer 提供了一种更好的方法。
您需要获取图像的文件句柄而不是 base64 编码。使用文件句柄解决了 JavaScript 内存不足错误的问题。这也消除了任何跨站点脚本问题,因为 PhoneGap 使用本机代码而不是使用浏览器来执行发布。希望对您有所帮助。
【讨论】:
我同意 Chuck 的观点,您最好使用 FileTransfer 对象。较大的 Base64 字符串会导致您的应用出现内存不足错误。 Zac 有一个关于这个主题的很好的教程:
http://zacvineyard.com/blog/2011/03/25/upload-a-file-to-a-remote-server-with-phonegap/
【讨论】:
为什么不使用 HTTP POST 而不是 HTTP GET?
【讨论】: