显然,如果您的脚本用于将文件作为电子邮件附件发送,那么您的文件确实应该小于 10 个月,因为许多邮件服务器会拒绝较大的电子邮件。
出于安全原因,您无法从浏览器访问有关文件的信息。但是一旦在表单的文件字段中选择了文件,您就可以使用 HTML5 文件 API。有关完整的演示文稿,请参阅此页面。
这是您在提交之前需要处理文件大小的代码部分:
<input type="file" id="a_file" name="a_file" />
<script>
function fileSelect(evt) {
var file = evt.target.files[0];
var size_mo = (file.size / (1024 * 1024)).toFixed(3);
if (size_mo >= 10)
{
alert('Your file is too big ('+size_mo+'Mo).');
// eventually reset the form with window.your_form.reset() to avoid submit
}
else
{
alert('Your file is ready for upload ('+size_mo+'Mo)');
}
}
document.getElementById('a_file').addEventListener('change', fileSelect, false);
</script>
但是,此解决方案将仅支持最新的浏览器,并且与低于 10 的 Internet Explorer 版本不兼容。
没有其他使用 HTML 或 JS 的解决方案。如果您想获得全面支持,您将需要 Flash 或 Java(请记住,还有一些计算机未安装这些技术)。因此,您可以做的最好的事情是使用带有浏览器检测的 HTML5 代码,并且如果您无法读取文件大小并在支持 HTML5 时具有良好的行为,请不要警告用户。