由於Zend Framework沒有提供檔案上傳的library,所以只好自行撰寫這部份的程式~
檔案上傳-「commons fileUpload」這是Java版的檔案上傳,兩者相形之下~ PHP顯得相當簡化!
前置作業
1.在C:磁碟機下建立一個「tmp」的資料夾。
2.在你的htdocs資料夾下建立一個「upload」的資料夾。(上傳到此處)
php.ini設定
file_uploads = On
upload_tmp_dir = C:\\tmp
upload_max_filesize = 10M
upload.html
<form enctype="multipart/form-data" action="upload.php" method="POST"> Send this file: <input name="userfile" type="file" /> <input type="submit" value="Send File" /> </form>
upload.php
$uploaddir = './upload/'; $uploadfile = $uploaddir . $_FILES['userfile']['name']; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { echo "File is valid, and was successfully uploaded.\n"; } else { echo "Possible file upload attack!\n"; }
解決中文檔名上傳問題
將上述第三行改成下述即可,也就是將原本所使用的UTF-8編碼改成Big5字串,並傳給move_uploaded_file()函式來使用,感覺上應該是move_uploaded_file()函式的問題,不過這純屬猜測~ 也有可能是作業環境的編碼問題~ Anyway, 有遇到同樣問題的朋友,不妨試著用這種方式來解決!
if (move_uploaded_file($_FILES['userfile']['tmp_name'], iconv("utf-8","Big5",$uploadfile))) {
參考資料: