您好,登錄后才能下訂單哦!
環境:
1、wamp:php5.4.12
2、ThinkPHP_Extend_3.1.2 中UploadFile.class.php
代碼:
function upload(){
import('UploadFile.class');
$upload = new UploadFile();// 實例化上傳類
$upload->maxSize = 3145728 ;// 設置附件上傳大小
$upload->allowExts = array('jpg', 'gif', 'png', 'jpeg');// 設置附件上傳類型
$upload->savePath = './temp/';// 設置附件上傳目錄
if(!$upload->upload()) {// 上傳錯誤提示錯誤信息
echo($upload->getErrorMsg());
}else{// 上傳成功 獲取上傳文件信息
$info = $upload->getUploadFileInfo();
}
// 保存表單數據 包括附件數據
echo $info[0]['savename']; // 保存上傳的照片根據需要自行組裝
}
問題:
1、提示“非法上傳文件”
2、提示“文件上傳保存錯誤”
分析:
UploadFile.class.php文件中打印輸出文件路徑名:
echo $file['tmp_name']; D:\\wamp\\tmp\\phpF95B.tmp
這個路徑名異常,應該是D:\wamp\tmp\phpF95B.tmp才能正常上傳文件。
深入研究:
當magic_quotes_gpc是Off的時候,由于為$_FILES數組添加了addslashes作用,出現了問題。也就在 magic_quotes_gpc是Off的PHP環境下都會出現此問題。
解決:
UploadFile.class.php文件中進行文件路徑處理,類文件的bug:
public function upload($savePath ='')入口方法進行處理
if (!get_magic_quotes_gpc()) {
$file['tmp_name'] = str_replace('\\\\', '\\', $file['tmp_name']);
}
最終解決問題。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。