我正在使用cordova / PhoneGap和IonicFramework(使用AngularJS)创建移动应用程序。在应用程序中,用户可以在画布上绘制他的签名(https://github.com/szimek/signature_pad)。目前,画布保存为DataURL:
data:image/png;base64,iVBORw0KGgoAAAANS ...
保存签名后,我想使用Cordova的FileTransfer
插件(http://docs.phonegap.com/en/3.1.0/cordova_file_file.md.html#FileTransfer)将图像发送到服务器。
我已经为从相机拍摄的常规图像执行此操作,并且工作正常。这是我的上传功能:
function uploadPicture(fileURL) {
var win = function (result) {
console.log('Success!');
}
var fail = function (err) {
console.log('Fail!');
}
var options = new FileUploadOptions();
options.fileKey = 'file';
options.fileName = fileURL.substr(fileURL.lastIndexOf('/') + 1);
options.mimeType = 'image/jpeg';
options.chunkedMode = true;
options.params = {};
var ft = new FileTransfer();
ft.upload(fileURL, encodeURI('http://example.com/upload/'), win, fail, options);
}
现在您可以看到fileURL
是文件的完整路径。我想通过当我以某种方式将dataURL转换为实际图像时,我可以使用该插件(不是100%确定是否会修复它)。
这有可能吗?我搜索了很多但找不到任何有用的东西。大多数示例都是关于将dataURL发送到服务器并让服务器处理它,但我不是在寻找它。
任何想法/想法/帮助吗?我希望我想要的是可能的!
答案 0 :(得分:0)
您必须将base64转换为设备上的图像。然后上传它。但是,最好只将base64发送到服务器并让它处理,以便在客户端节省空间和时间。