我想简单地限制用户可以上传的文件的大小.

我认为最大长度=20000=20k,但这似乎根本不起作用.

我在Rails上运行,而不是在PHP上运行,但是我想在客户端使用HTML/CSS或者作为最后的手段使用jQuery会简单得多.不过,这是非常基本的,一定有一些我遗漏或没有意识到的HTML标记.

希望支持IE7+、Chrome和FF3.6+. 我想如果必要的话,我可以只支持IE8+而不受惩罚.

谢谢.

推荐答案

这是完全可能的.使用Javascript.

我使用jQuery Select 输入元素.我已经安排了一个关于改变的活动.

$("#aFile_upload").on("change", function (e) {

    var count=1;
    var files = e.currentTarget.files; // puts all files into an array

    // call them as such; files[0].size will get you the file size of the 0th file
    for (var x in files) {

        var filesize = ((files[x].size/1024)/1024).toFixed(4); // MB

        if (files[x].name != "item" && typeof files[x].name != "undefined" && filesize <= 10) { 

            if (count > 1) {

                approvedHTML += ", "+files[x].name;
            }
            else {

                approvedHTML += files[x].name;
            }

            count++;
        }
    }
    $("#approvedFiles").val(approvedHTML);

});

上面的代码保存了我认为值得保存到提交页面的所有文件名,在提交实际发生之前.我使用jQuery将"已批准"的文件添加到输入元素的val中,以便表单提交将发送我要保存的文件的名称.所有的文件都将被提交,但是,现在在服务器端,我们必须过滤掉这些文件.我还没有为此编写任何代码,但请发挥你的想象力.我假设可以通过一个for循环来实现这一点,并将输入字段中发送的名称与$_FILES(PHP Superglobal,抱歉,我不知道ruby file变量)变量进行匹配.

我的意思是你可以在提交文件之前判断文件.我这样做,然后在用户提交表单之前将其输出给用户,让他们知道他们正在上传到我的网站.任何不符合标准的内容都不会显示给用户,因此用户应该知道,过大的文件不会被保存.这应该适用于所有浏览器,因为我没有使用FormData对象.

Html相关问答推荐

CSS属性不适用于IOS设备

使用网格时图像溢出容器高度

首字下沉非字母字符

如何实现弯曲的梯形导航栏?

Angular 15 p-对话框不使用组件 Select 器呈现HTML

嵌套表列高度不是100%高度的问题

有没有一种方法可以动态地从网格或Flexbox中取出HTML元素?

如何使用CSS在NSAttributedString中为HTML文本中的图像制作覆盖图

Bootstrap nav没有崩溃

Style=背景图像URL引用变成&;Quot;

在TWebLabel标题中设置换行符/换行符的方法?

使自定义图像滑块全宽

在 WooCommerce 存档产品类别描述上添加阅读更多/阅读更少按钮

为什么我的网页显示网格区域彼此相邻,而不是我设置它们的方式?

如果使用复选框属性更改,如何防止事件更改?

如何使粘性导航栏能够跨其他组件工作?

为什么 `::before` 在使用内容 `url(svg)` 时会增加一些高度

使用flex wrap时,如何设置另一个元素的宽度与换行后的元素对齐?

Mediawiki css/html 信息框创建空白行

动态使用时波浪号不转换为绝对路径