我想简单地限制用户可以上传的文件的大小.
我认为最大长度=20000=20k,但这似乎根本不起作用.
我在Rails上运行,而不是在PHP上运行,但是我想在客户端使用HTML/CSS或者作为最后的手段使用jQuery会简单得多.不过,这是非常基本的,一定有一些我遗漏或没有意识到的HTML标记.
希望支持IE7+、Chrome和FF3.6+. 我想如果必要的话,我可以只支持IE8+而不受惩罚.
谢谢.
我想简单地限制用户可以上传的文件的大小.
我认为最大长度=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对象.