上傳檔案在PHP開發中是一個非常普遍的功能,在日常開發中也是非常常見的,在PHP實作檔案上傳的功能比在其他的語言要簡單的多,本節就是介紹檔案上傳的函數和多文件上傳!
那麼在上一篇文章《php文件上傳-配置php.inn文件以及預定義變數$_FILES》中我們介紹了文件上傳要配置php.ini文件,這是文件上傳必要的一步以及預定義變數的介紹,還沒有閱讀的小夥伴可以去詳細的閱讀下,對閱讀下面的文章有一定的幫助。
檔案上傳函數
PHP中使用move_uploaded_file()函數來上傳文件,函數的語法格式如下:
bool move_uploaded_file ( string $filename , string $destination )
move_uploaded_file()函數是將上傳檔案儲存到指定位置。如果成功,那麼就會回傳true,否則回傳false。 參數 filename是上傳檔案的暫存檔名,就是$S_FILES[tem_name];參數 destination 是上傳後儲存的新的路徑和名稱。
這種檢查顯得格外重要,如果上傳的檔案有可能會造成對使用者或本系統的其他使用者顯示其內容的話。
注意:
move_uploaded_file() 對安全模式和 open_basedir 都是敏感的。不過,限制只針對 destination 路徑,因為允許移動上傳的檔案名稱 filename 可能會與這些限制產生衝突。 move_uploaded_file() 只作用於透過 PHP 上傳的檔案以確保此操作的安全性。
下面的實例建立一個上傳表單,允許上傳檔案大小為1MB 一下的文件,具體的範例程式碼如下:
<html> <body> <!--上传表单,有一个上传文件域--> <form method="post" action="" enctype="multipart/form-data" name="form"> <input type="file" name="up_file"> <!-- 提交按钮--> <input type="submit" name="submit" value="上传"> </form> </body> </html> <?php header("Content-Type:text/html; charset=utf-8"); if(!empty($_FILES['up_file']['name'])){ //判断是否有文件 $fileinfo = $_FILES['up_file']; //将文件信息赋给变量$fileinfo if($fileinfo['size']<1000000 && $fileinfo['size']>0){ //判断文件大小 move_uploaded_file($fileinfo['tmp_name'],$fileinfo['name']); //上传文件 echo "上传成功"; }else{ echo '文件太大或未知'; } } ?>
選擇一個檔案上傳,輸出結果如下:
#說明:
使用move_uploaded_file()函數上傳文件,在建立form表單時,必須設定form 表單的enctype="multipart/form-data「。
上傳檔案函數我們就介紹到這裡,下一篇我們來介紹多文件上傳,具體內容請閱讀《PHP文件上傳-多文件上傳的範例程式碼詳解 》!
以上是PHP檔案上傳-move_uploaded_file()函數的使用詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!