blog.Ring.idv.tw

PHP - 檔案上傳

PHP - 檔案上傳

由於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))) {

參考資料:

Handling file uploads

2007-10-10 12:26:44

Leave a Comment

Copyright (C) Ching-Shen Chen. All rights reserved.

::: 搜尋 :::

::: 分類 :::

::: Ads :::

::: 最新文章 :::

::: 最新回應 :::

::: 訂閱 :::

Atom feed
Atom Comment