用PHPCMS V9.5.6版本做了一個網(wǎng)站,上傳到服務(wù)器后發(fā)現(xiàn)一個問題。用chrome瀏覽器訪問正常,但是有些瀏覽器在上傳縮略圖的時候卻提示“選擇的類型必須為圖片類型”錯誤。
現(xiàn)象是:選擇“上傳附件”,選擇了jpg格式的圖片之后,點(diǎn)擊“開始上傳”按鈕,進(jìn)度條100%了,但是卻在“列表”處不顯示好像上傳成功的圖片(實際上未上傳成功),再點(diǎn)擊“確定”按鈕,就會彈出“選擇的類型必須為圖片類型”錯誤提示。
點(diǎn)擊縮略圖
選擇圖片,然后上傳
提示錯誤
同樣的情況也會發(fā)生在內(nèi)容的“可視化文本編輯器”里面,點(diǎn)擊“圖像”上傳圖片,會報錯“您的會話已過期,請重新登錄。”
兩個應(yīng)該是同一個問題,但是為什么同樣的訪問,有些瀏覽器正常,但是有些瀏覽器出現(xiàn)這樣的錯誤呢?翻遍了網(wǎng)上論壇也沒找到原因。
好在有了一個解決辦法:
找到文件:/phpcms/modules/attachment/attachments.php
將“//判斷是否登錄”這個部分屏蔽掉,就是屏蔽21、22、23行(如圖)。
再次上傳圖片就正常了,不過是否有安全隱患呢?
另一種解決辦法:
修改21行代碼:
if(empty($this->userid)){
改為:
if(empty($this->userid) && empty($_POST['userid'])){
這樣就沒問題了,看起來比注釋要靠譜許多了。