1

我有一个这样的文件上传表格

<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>

有时用户上传的文件名称为 200 个字符。存在限制文件名最大长度的方法吗?

4

3 回答 3

2

浏览器会将基本文件名公开给 JavaScript,因此这在技术上是可行的,尽管正如上面提到的@VisioN,我想不出你为什么会关心;只需将服务器上的文件重命名为其他文件即可。如果你绝对需要阻止它,那么给你的元素一个 IDuploader然后:

<script>
document.getElementById("uploader").onsubmit = function(){
    return document.getElementById("file").value.length < 200; 
};
</script>

当然,这只有在启用 JavaScript 时才有效。

于 2013-04-05T22:51:35.040 回答
1

使用 Graham 的代码并使用 PHP 检查文件名长度

if(strlen($_POST['name']) > 200) { echo "filename to long"; exit; }

并且您必须将 MAX_FILE_SIZE 添加到您的 HTML 表单中,否则 PHP 不会获取上传的文件

<input type="hidden" name="MAX_FILE_SIZE" value="MaximumFilesizeInBytes">
于 2013-04-05T23:19:34.750 回答
0

您还应该在 PHP 端验证它,因为有人可以直接将其提交到 upload_file.php 并绕过任何 HTML/JavaScript 限制。

于 2013-04-05T23:14:47.753 回答