2013-04-05 84 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限制。