【发布时间】:2016-11-03 21:37:14
【问题描述】:
我正在使用 JQuery File Upload con UploadHandler,这个: https://github.com/blueimp/jQuery-File-Upload/blob/master/server/php/UploadHandler.php 我用fileupload很好地上传了图像,但现在我需要在上传之前修改它们。我正在使用croppie.js: http://foliotek.github.io/Croppie/ 我正在以这种方式修改“fileuploadadd”方法:
.bind('fileuploadadd', function (e, data) {
$(e.target).fileupload('option', 'url', uploads_base_url + '?f=' + $(e.target).attr('folder'));
var acceptFileTypes = /(\.|\/)(gif|jpe?g|png)$/i;
if ($(e.target).attr('data-accept_file_types') != '' && '' + $(e.target).attr('data-accept_file_types') != 'undefined')
acceptFileTypes = new RegExp($(e.target).attr('data-accept_file_types'), 'i');
if (data.originalFiles[0]['name']) {
var fileExt = '.' + data.originalFiles[0]['name'].split('.').pop();
if (!acceptFileTypes.test(fileExt)) {
alert('Formato non ammesso');
return false;
} else {
data.context = $("<div id='cropper'></div>").croppie({
viewport: {
width: 300,
height: 300,
type: 'circle'
}
})
.insertAfter("#dragArea");
var reader = new FileReader();
reader.readAsDataURL(data.files[0]);
reader.onload = function (e) {
data.context.croppie('bind', {
url: e.target.result
});
};
$("<div><button>Taglia</button></div>").insertAfter("#cropper")
.click(function () {
$("#cropper").croppie('result', {format: 'jpeg'}).then(function (resp) {
var blob = new Blob([window.atob(resp.split(",")[1])],{type:"image/jpeg"});
data.files[0] = new File([blob], data.originalFiles[0]['name'].split(".")[0]+".jpeg");
data.originalFiles[0] = data.files[0];
data.submit();
$("#cropper").remove();
$(this).remove();
});
});
}
}
//fixFileuploadValue(e.target, data.files[0].name);
});
点击剪切按钮,文件被上传,但它的编码方式与fileupload文件不同。如何以与裁剪图像相同的方式下载?
【问题讨论】:
-
你知道怎么做吗?
-
@gabn88 我从 jquery 文件上传中看到了您的分叉,但您没有提供演示或工作示例。你能举一个可行的例子吗?
-
@estevex 在下面看到我的回答
标签: jquery file jquery-file-upload