【发布时间】:2017-04-18 07:17:45
【问题描述】:
我正在使用 jQuery Croppie 库来裁剪用户上传的文件。当用户上传文件时,我正在打开用户可以裁剪图像的模式。之后,我想将此裁剪后的图像设置为文件输入值,以便用户可以在一切准备就绪后提交表单,但我不知道如何将裁剪后的图像“设置”为输入值。
这是我的代码。
$scope.openCropModal = function(files) {
if (!(files[0] instanceof Object) || (fileUploadMaxSize * 1100000) < files[0].size) {
Alertify.alert('File size must be less than ' + fileUploadMaxSize + 'mb');
return false;
}
$('#cropLogoModal').modal({});
var $uploadCrop = $('#cropperMainContainer').croppie({
viewport: {
width: 200,
height: 200,
type: 'square'
},
boundary: {
width: 300,
height: 300
},
enableExif: true,
enableOrientation: true,
orientation: 4,
});
var reader = new FileReader();
reader.onload = function (e) {
$uploadCrop.croppie('bind', {
url: e.target.result
}).then(function() {
});
};
reader.readAsDataURL(files[0]);
$('#ready').on('click', function() {
$uploadCrop.croppie('result', 'blob').then(function(blob) {
});
});
$('.vanilla-rotate').on('click', function() {
$uploadCrop.croppie('rotate', parseInt($(this).data('deg')));
});
}
【问题讨论】:
-
您如何发送此表格?通过 ajax 或默认 HTML 操作?
-
默认 HTML 表单提交
-
太糟糕了...那么骇人听闻的 dataURI 空字段是您唯一的方法...对于可以通过 ajax 发送的未来读者,创建一个 FormData 对象并在其中附加您的 blob 版画布,所以它作为多部分上传,就像任何二进制数据一样。
-
Ps:您不能以编程方式更改输入类型文件的值,除非重置它。
标签: javascript jquery image croppie flatfilereader