我有一个像这样的文件上传表单
<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的方法?
答案 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限制。