22

我正在使用Codeigniter为我的下一个项目使用JQuery 文件上传演示。谁能告诉我如何实现以下目标:

  • 将上传文件类型限制为 .zip 和 .rar
  • 限制文件大小
  • 清除已上传文件列表(JQuery 文件上传插件显示已上传文件列表)

帮助赞赏!

4

5 回答 5

69

您现在可能有很多解决方案,但是我想为 jquery 上传器使用 BASIC 插件,即没有任何其他脚本.. 由于某种原因 maxFileSize/fileTypes 选项不起作用-但这无疑是我的不足阅读文档!

无论如何对我来说,它就像执行以下操作一样快:

    add: function (e, data) {
        var goUpload = true;
        var uploadFile = data.files[0];
        if (!(/\.(gif|jpg|jpeg|tiff|png)$/i).test(uploadFile.name)) {
            common.notifyError('You must select an image file only');
            goUpload = false;
        }
        if (uploadFile.size > 2000000) { // 2mb
            common.notifyError('Please upload a smaller image, max size is 2 MB');
            goUpload = false;
        }
        if (goUpload == true) {
            data.submit();
        }
    },

因此,只需使用 ADD 选项仅允许正则表达式中的图像类型,并检查(在我的情况下)文件大小最大为 2mb。

相当基本,我再次确定 maxFileSize 选项有效,只是我只包括基本插件脚本 jquery.fileupload.js

编辑 我应该在我的情况下添加我只上传一个文件(个人资料图片),因此 data.files[0].. 你当然可以遍历文件集合。

于 2013-01-21T08:55:54.110 回答
7

在 jquery.fileupload-ui.js 中编辑这部分:

   $.widget('blueimp.fileupload', $.blueimp.fileupload, {

    options: {
        // The maximum allowed file size:
        maxFileSize: 100000000,
        // The minimum allowed file size:
        minFileSize: undefined,
        // The regular expression for allowed file types, matches
        // against either file type or file name:
        acceptFileTypes:  /(zip)|(rar)$/i,
        ----------------------------------------------------------------

清除上传文件列表 - 如果您不需要该功能,请从 main.js 中删除 $.getJSON 调用。

于 2012-11-02T06:36:13.057 回答
3

根据官方文档;

$('#file_upload').fileUploadUIX({
    maxFileSize: 5000000, // Maximum File Size in Bytes - 5 MB
    minFileSize: 100000, // Minimum File Size in Bytes - 100 KB
    acceptFileTypes: /(zip)|(rar)$/i  // Allowed File Types
});
于 2012-09-06T15:45:42.750 回答
3

另一种方法如下。

 $('#upload').fileupload({ 
       change: function (e, data) { 
                if (!(/\.(jpg|jpeg|png|pdf)$/i).test(data.files[0].name)) {
                    alert('Not Allowed');
                    return false;
                }
        } 
 });
于 2018-08-16T08:54:16.857 回答
-2

试试看这一行:

 process: [
            /*
                {
                    action: 'load',
                    fileTypes: /^image\/(gif|jpeg|png)$/,
                    maxFileSize: 20000000 // 20MB
                },
                {
                    action: 'resize',
                    maxWidth: 1920,
                    maxHeight: 1200,
                    minWidth: 800,
                    minHeight: 600
                },

在 jquery.fileupload-fp.js

于 2012-09-06T15:45:40.893 回答