自三个月以来,我在我的项目中使用 jQuery 文件上传来上传和调整图像文件的大小。直到上周一切正常。该插件不再调整图像大小(最新的 google chrome 和最新的 firefox)。
我在此页面上使用相同的基本配置https://github.com/blueimp/jQuery-File-Upload/wiki/Basic-plugin
有人有同样的问题,也许有解决方案吗?
谢谢
自三个月以来,我在我的项目中使用 jQuery 文件上传来上传和调整图像文件的大小。直到上周一切正常。该插件不再调整图像大小(最新的 google chrome 和最新的 firefox)。
我在此页面上使用相同的基本配置https://github.com/blueimp/jQuery-File-Upload/wiki/Basic-plugin
有人有同样的问题,也许有解决方案吗?
谢谢
我无法让客户端图像大小调整工作,我发现这是因为我已经覆盖了 add 方法并且没有包含在原始方法中进行图像大小调整的代码。我会发布我的解决方案,希望它可以帮助人们节省一些挫败感。
<form action="/path/to/uploadHandler" id="multiple-image-upload" enctype="multipart/form-data" method="post" accept-charset="utf-8">
<input name="files" multiple="multiple" id="files" type="file">
</form>
<div id="file-upload-progress">
<div id="upload-progress">
<div class="bar" style="width: 0%;"></div>
</div>
</div>
<script type="text/javascript">
$(function () {
$('#multiple-image-upload').fileupload({
dataType: 'json',
// Enable image resizing, except for Android and Opera,
// which actually support image resizing, but fail to
// send Blob objects via XHR requests:
disableImageResize: /Android(?!.*Chrome)|Opera/
.test(window.navigator.userAgent),
process:[
{
action: 'load',
fileTypes: /^image\/(gif|jpeg|png)$/,
maxFileSize: 20000000 // 20MB
},
{
action: 'resize',
maxWidth: 1920,
maxHeight: 1200,
minWidth: 800,
minHeight: 600
},
{
action: 'save'
}
],
add: function (e, data) {
data.context = $('<p/>').text('Uploading '+data.files[0].name+'...').appendTo("#file-upload-progress");
var $this = $(this);
data.process(function () {
return $this.fileupload('process', data);
}).done(function() {
data.submit();
});
},
done: function (e, data) {
data.context.html('<img src="'+data.result.files[0].thumbnailUrl+'" alt="'+data.result.files[0].name+'" />');
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('#upload-progress .bar').css(
'width',
progress + '%'
).text(
progress + '%'
);
}
});
})();
最好的方法是我目前正在做的是:
$('#fileupload').fileupload({
dataType: 'json',
url: 'Upload.ashx,
done: function (e, data) {
$("#page_navigation").show();
$.each(data.result, function (index, file) {
$('#placeholderforimages').append("<img style='height:48px;width:65px;' src='yourimagepath'>");
}
});
更新:
这是您需要创建一个数组并需要在其中声明的 wiki选项
[
{
action: 'load',
fileTypes: /^image\/(gif|jpeg|png)$/,
maxFileSize: 20000000 // 20MB
},
{
action: 'resize',
maxWidth: 1920,
maxHeight: 1200,
minWidth: 800,
minHeight: 600
},
{
action: 'save'
}
],
我也遇到了 jQuery File Upload 的问题,并设法通过更改以下部分中的文件“jquery.fileupload-image.js”中的选项来解决它:
// The File Upload Resize plugin extends the fileupload widget
// with image resize functionality:
$.widget('blueimp.fileupload', $.blueimp.fileupload, {
options: {
...
// The maximum file size of images to load:
loadImageMaxFileSize: 20000000, // 10MB
// The maximum width of resized images:
imageMaxWidth: 250,
// The maximum height of resized images:
imageMaxHeight: 250,
...
// Disable the resize image functionality by default:
disableImageResize: false,
...
},
不知何故,选项将“其他地方”(在我的情况下,从官方页面的官方教程复制的所有代码)不会覆盖此处声明/显示的默认选项。