- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在使用 Blueimp jQuery 文件上传插件上传文件。
我在上传时没有问题,但选项 maxFileSize
和 acceptFileTypes
不起作用。
这是我的代码:
$(document).ready(function () {
'use strict';
$('#fileupload').fileupload({
dataType: 'json',
autoUpload: false,
acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
maxFileSize: 5000000,
done: function (e, data) {
$.each(data.result.files, function (index, file) {
$('<p style="color: green;">' + file.name + '<i class="elusive-ok" style="padding-left:10px;"/> - Type: ' + file.type + ' - Size: ' + file.size + ' byte</p>')
.appendTo('#div_files');
});
},
fail: function (e, data) {
$.each(data.messages, function (index, error) {
$('<p style="color: red;">Upload file error: ' + error + '<i class="elusive-remove" style="padding-left:10px;"/></p>')
.appendTo('#div_files');
});
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('#progress .bar').css('width', progress + '%');
}
});
});
最佳答案
有同样的问题,blueimp 的家伙说“maxFileSize and acceptFileTypes are only supported by the UI version”并提供了一个(损坏的)链接来合并 _validate 和 _hasError 方法。
因此,在不知道如何在不弄乱脚本的情况下合并这些方法的情况下,我编写了这个小函数。它似乎对我有用。
只需添加这个
add: function(e, data) {
var uploadErrors = [];
var acceptFileTypes = /^image\/(gif|jpe?g|png)$/i;
if(data.originalFiles[0]['type'].length && !acceptFileTypes.test(data.originalFiles[0]['type'])) {
uploadErrors.push('Not an accepted file type');
}
if(data.originalFiles[0]['size'].length && data.originalFiles[0]['size'] > 5000000) {
uploadErrors.push('Filesize is too big');
}
if(uploadErrors.length > 0) {
alert(uploadErrors.join("\n"));
} else {
data.submit();
}
},
在 .fileupload 选项的开头,如您的代码所示
$(document).ready(function () {
'use strict';
$('#fileupload').fileupload({
add: function(e, data) {
var uploadErrors = [];
var acceptFileTypes = /^image\/(gif|jpe?g|png)$/i;
if(data.originalFiles[0]['type'].length && !acceptFileTypes.test(data.originalFiles[0]['type'])) {
uploadErrors.push('Not an accepted file type');
}
if(data.originalFiles[0]['size'].length && data.originalFiles[0]['size'] > 5000000) {
uploadErrors.push('Filesize is too big');
}
if(uploadErrors.length > 0) {
alert(uploadErrors.join("\n"));
} else {
data.submit();
}
},
dataType: 'json',
autoUpload: false,
// acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
// maxFileSize: 5000000,
done: function (e, data) {
$.each(data.result.files, function (index, file) {
$('<p style="color: green;">' + file.name + '<i class="elusive-ok" style="padding-left:10px;"/> - Type: ' + file.type + ' - Size: ' + file.size + ' byte</p>')
.appendTo('#div_files');
});
},
fail: function (e, data) {
$.each(data.messages, function (index, error) {
$('<p style="color: red;">Upload file error: ' + error + '<i class="elusive-remove" style="padding-left:10px;"/></p>')
.appendTo('#div_files');
});
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('#progress .bar').css('width', progress + '%');
}
});
});
您会注意到我还在其中添加了一个文件大小函数,因为它也只适用于 UI 版本。
已更新以解决@lopsided 建议的过去问题:添加了 data.originalFiles[0]['type'].length
和 data.originalFiles[0]['size']。 length
以确保它们存在并且在测试错误之前首先不为空。如果它们不存在,则不会显示任何错误,它只会依赖于您的服务器端错误测试。
关于javascript - blueimp 文件上传插件中的 maxFileSize 和 acceptFileTypes 不起作用。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17451629/
使用Blueimg Gallery我想知道如何在单击 img class=".slide-content" 希望有帮助。 关于jquery - Blueimp 画廊 : Always show "bl
当我尝试使用 blueImp 上传时,打开控制台时出现以下错误: Uncaught TypeError: Cannot read property 'parseMetaData' of undefin
是否可以更改通过jquery blueimp上传的文件的文件名? 最佳答案 require('UploadHandler.php'); class CustomUploadHandler extend
我已成功在我的网站中实现 Blueimp Gallery,并且使用 HTML5 数据属性能够使灯箱正常工作。 我用它来加载许多图片,用户可以在它们之间循环(滑动)。图片可能有与之相关的评论以及用户可
我一直在四处寻找并试图找到 Blueimp 无法工作的答案... 这非常令人沮丧,这是一个学校团队网站,我希望它很快就能完成。 这是我的代码片段:
我的页面具有以下输入元素: 然后使用以下 javascript 开始上传: $("#my-upl").fileupload({ url: uploadUrl, dataType: 'stri
我正在尝试在图像列表下添加一个删除按钮,该按钮将使用 Ajax 从图库中删除所选图像。 我遇到的问题是,每当单击删除按钮时,它都会打开图像库,下面的脚本会打开图库,当在“链接”div 内部单击时会打开
我需要恢复我上传的文件的名称或 URL: $('#fileupload').fileupload({ complete: function (e, data) {
我正在尝试使用 blueimp 文件上传插件异步上传图像,但是当我尝试上传它们时没有任何反应。根本没有触发任何回调函数。我正在使用此函数将文件 uploader 绑定(bind)到文件输入。 var
当我运行我的应用程序时,文件上传功能显示错误 未捕获类型错误:对象 [object Object] 没有方法“fileupload” $(document).ready(function(){
首先我必须说我在 stackoverflow 上有所有解决方案,但没有成功。我的问题很简单,我需要在单击“开始上传”按钮之前/之后从队列中删除文件,该按钮一键上传所有文件......我的代码:
我有一个简单的图像上传程序,用户需要上传大图片。我使用Blueimp文件 uploader 来上传图像。我还提供了一些输入字段,供用户填写图片的元数据(即标题、作者等)。 想法是,用户在填写表单并上传
我正在尝试构建将在我的网站项目中使用的上传模块。我选择了 blueimp 文件上传,因为它提供了所有配置选项。 想法是有按钮,它将显示带有上传模块的模态窗口。 我的(几乎)工作原型(prototype
这就是我正在努力解决的问题:https://github.com/blueimp/jQuery-File-Upload 我遇到了this topic这与我的问题类似: 我有一些产品,您应该能够关联多个
我正在使用这个: https://github.com/blueimp/jQuery-File-Upload 一切都很好,但我想知道如何做到这一点,所以每当我在其中上传完东西时,当我再次进入那个上传页
我正在尝试在 blueimp 文件上传脚本中找到位置,以更改表中新文件位置的行为。如何强制将它们添加到文件列表末尾的表格顶部? 最佳答案 只需添加属性prependFiles:true 例子: $('
我正在使用jQuery file upload plugin用于文件上传。上传工作正常。但现在我想添加对文件大小和类型的任何限制。不幸的是,验证没有被触发。 我包括下一个插件文件:jquery.fil
我正在尝试使用 blueimp 控件仅上传单个文件(就像普通的 HTML 文件上传一样)。但是,在文件上传完成后,我选择了另一个文件,以前的文件会与新文件一起再次上传。随后,每次我选择一个文件后,都会
我使用 blueimp gallery 进行幻灯片放映默认情况下,当我打开幻灯片时,它会自动播放图片,换句话说,它会自动从一张图像移动到另一张图像。 ‹ › × 我想在打开幻灯片时停止播放图
我正在设置 blueimp lightbox,lightbox 正在启动,但没有加载/显示图像,是新的,我应该在脚本中添加什么以允许它找到图像..?我希望能够让灯箱显示来自单击的任何缩略图的图像...
我是一名优秀的程序员,十分优秀!