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