文件名maxlength

时间:2013-04-05 22:43:59

标签: php javascript

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

<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个字符的文件。 是否存在限制文件名maxlenghth的方法?

3 个答案:

答案 0 :(得分:2)

浏览器会将基本文件名暴露给JavaScript,所以这在技术上是可行的,尽管上面提到的@VisioN,我想不出你为什么要关心;只需将服务器上的文件重命名为其他内容即可。如果您绝对需要阻止它,请为您的元素提供uploader的ID,然后:

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

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

答案 1 :(得分: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">

答案 2 :(得分:0)

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