public function upload() { //匯入圖片上傳類 import("ORG.Net.UploadFile"); //執行個體化上傳類 $upload = new UploadFile(); $upload->maxSize = 3145728; //設定檔案上傳類型 $upload->allowExts = array('jpg','gif','png','jpeg'); //設定檔案上傳位置 $upload->savePath = __ROOT__.'/Public/Uploads/Images/'; //設定檔案上傳名(按照時間) $upload->saveRule = "time"; if (!$upload->upload()){ $this->error($upload->getErrorMsg()); }else{ //上傳成功,擷取上傳資訊 $info = $upload->getUploadFileInfo(); } $savename = $info[0]['savename']; $url = $savename; //儲存表單資料,包括上傳的圖片 $model = M("pkxs"); if (false === $model->create ()) { $this->error ( $model->getError () ); } // 更新資料 $list=$model->save (); if (false !== $list) { //成功提示 $this->assign ( 'jumpUrl', Cookie::get ( '_currentUrl_' ) ); $this->success ('編輯成功!'); } else { //錯誤提示 $this->error ('編輯失敗!'); } }
代碼中的目錄是存在的,我在IIS中也將整個“Uploads”檔案夾及子檔案夾都賦了“寫入”許可權,為什麼還是提示“上傳目錄/WEB/WPM/Public/Uploads/Images/不可寫”呢?
回複討論(解決方案)
你的上傳目錄是在網站中嗎?
如果是,需要在 iis 管理其中勾選“寫入”
從根起到你的上傳目錄,路徑名中不能有中文
windows 的預設字元集是 gbk,而 TP 是 utf-8 的
對於非 iis 管理的檔案夾僅有寫入許可權是不夠的,還需在進階選項卡中勾選 允許存檔
你的上傳目錄是在網站中嗎?
如果是,需要在 iis 管理其中勾選“寫入”
從根起到你的上傳目錄,路徑名中不能有中文
windows 的預設字元集是 gbk,而 TP 是 utf-8 的
對於非 iis 管理的檔案夾僅有寫入許可權是不夠的,還需在進階選項卡中勾選 允許存檔
請問版主,我要將我的整個項目目錄勾選“寫入”?還是只是將上傳目錄勾選“寫入”呢?
關於中文路徑是沒有的。
iis 的配置都是針對整個網站的
我找到原因了,不是IIS配置的問題,是上傳目錄檔案夾的Users的寫入許可權沒給。
還是要多謝版主!結貼給分!