本文實例講述了TP3.2.3框架文件上傳操作。分享給大家供大家參考,具體如下:
在ThinkPHP中使用上傳功能無需進行特別處理。例如,下面是一個帶有附件上傳的表單提交:
<form action="__URL__/upload" enctype="multipart/form-data" method="post" ><input type="text" name="name" /><input type="file" name="photo" /><input type="submit" value="提交" ></form>
注意,要使用上傳功能 你的表單需要設置 enctype="multipart/form-data"
如果需要使用多個文件上傳,只需要修改表單,把
<input type='file' name='photo'>
改為
<input type='file' name='photo1'><input type='file' name='photo2'><input type='file' name='photo3'>
或者
<input type='file' name='photo[]'><input type='file' name='photo[]'><input type='file' name='photo[]'>
兩種方式的多附件上傳系統的文件上傳類都可以自動識別。
ThinkPHP文件上傳操作使用Think/Upload類,假設前面的表單提交到當前控制器的upload方法,我們來看下upload方法的實現代碼:
public function upload(){$upload = new /Think/Upload();// 實例化上傳類$upload->maxSize = 3145728 ;// 設置附件上傳大小$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 設置附件上傳類型$upload->rootPath = './Uploads/'; // 設置附件上傳根目錄$upload->savePath = ''; // 設置附件上傳(子)目錄// 上傳文件$info = $upload->upload();if(!$info) {// 上傳錯誤提示錯誤信息$this->error($upload->getError());}else{// 上傳成功$this->success('上傳成功!');}}
上傳類對圖片文件的上傳安全做了支持,如果企圖上傳非法的圖像文件,系統會提示 非法圖像文件。 為了更好的使用上傳功能,建議你的服務器開啟finfo模塊支持
在上傳操作之前,我們可以對上傳的屬性進行一些設置,Upload類支持的屬性設置包括:
屬性 | 描述 |
---|---|
maxSize | 文件上傳的最大文件大?。ㄒ宰止潪閱挝唬?,0為不限大小 |
rootPath | 文件上傳保存的根路徑 |
savePath | 文件上傳的保存路徑(相對于根路徑) |
saveName | 上傳文件的保存規則,支持數組和字符串方式定義 |
saveExt | 上傳文件的保存后綴,不設置的話使用原文件后綴 |
replace | 存在同名文件是否是覆蓋,默認為false |
exts | 允許上傳的文件后綴(留空為不限制),使用數組或者逗號分隔的字符串設置,默認為空 |
mimes | 允許上傳的文件類型(留空為不限制),使用數組或者逗號分隔的字符串設置,默認為空 |
autoSub | 自動使用子目錄保存上傳文件 默認為true |
subName | 子目錄創建方式,采用數組或者字符串方式定義 |
hash | 是否生成文件的hash編碼 默認為true |
callback | 檢測文件是否存在回調,如果存在返回文件信息數組 |
新聞熱點
疑難解答