2013-04-05 79 views
1

我有喜欢用200个字符的名称本文件名MAXLENGTH

<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> 

有时用户上传文件文件上传的形式。 存在一种限制文件名maxlenghth的方法?

+7

你不应该关心客户端的文件名大小,只需在服务器端重命名上传的文件即可。 – VisioN 2013-04-05 22:45:41

+0

绝对不是来自HTML/JavaScript(我知道的)。 – Jesse 2013-04-05 22:45:43

+0

是公平的,如果用户的文件位于ie:d:\ backup \ jan \ 2013 \ pictures \ holiday \ somethingelse \ foldername \ cant \ think \ off \ any中,则可能会导致比您需要的更多麻烦\ thing \ else \ image.jpg,如果您正在寻找一种方法来显示所选上传的文件名,大多数浏览器会为您解决此问题。 – Marty 2013-04-05 22:46:43

回答

1

使用来自格雷厄姆的代码,并检查文件名长度也与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

浏览器会将基本文件名显示为JavaScript,所以这在技术上是可行的,尽管上面提到的@VisioN,我想不出为什么你会在意;只需将服务器上的文件重命名为其他内容即可。如果你确实需要,以防止它,然后给你的元素uploader一个ID,然后:

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

当然,如果浏览器支持JavaScript,这只会工作。

0

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