1

所以,我们允许一些上传到我们的网络服务。

头像之类的。

我们通过 php 的 upload_max_filesize 将这些文件上传的最大大小设置为 8MB。

这很好用,除了如果用户上传更大的图像,例如 15MB,则会在我们的 php 日志中转储错误。

我们想避免这种情况。

所以:

无论如何,是否可以通过 HTML 设置文件的最大上传大小,以便超过我们指定大小的上传甚至不会发送到我们的服务器,从而避免日志中显示的错误?

这是我们试图避免 BTW 的 PHP 错误:

PHP Warning:  POST Content-Length of 11978117 bytes exceeds the limit of 8388608 bytes in Unknown on line 0
4

1 回答 1

1

您不能使用 HTML 标记来限制文件大小。(在很早的时候,RFC 1867 说该maxlength属性可以做到这一点,但该功能从未实现或纳入 HTML 规范。)

但是,相当现代的浏览器支持File API,它允许您使用客户端 JavaScript 编写此类检查。例子:

<script>
function checkFiles(files) {
  var ok = true;
  if(files) {
    for (var i = 0; i < files.length; i++) {
      var file = files[i];
      if(file.size > 8 * 1024 * 1024) {
         alert("The file" + file.name + " is too big.");
         ok = false; } } }
  return ok;
}
</script>
[...]
<form action="..." method="post" onsubmit=
 "return checkFiles(document.getElementById('f').files)"
[...]
<div><label for="f">File(s):</label>
<input id="f" type="file" name="file" multiple></div>
于 2013-10-27T11:46:33.180 回答