我似乎有一個奇怪的錯誤,我只是無法弄清楚。我的網站正在一臺服務器上工作,但是當我將它轉移到一臺新服務器上時,它停止工作。我相信我已經縮小了誤差降低到這行代碼:move_uploaded_file掛起?
$ret = move_uploaded_file($tmp_name, $orig_path);
這是通過AJAX調用所以這是一個有點棘手調試執行,但該腳本可以發送回一個錯誤代碼,然後我的JavaScript會將alert
它。所以,我把它包在其中兩個調試語句:
echo json_encode(array(
'success' => false,
'errno' => $tmp_name.' -> '.$orig_path,
));
exit;
$ret = move_uploaded_file($tmp_name, $orig_path);
echo json_encode(array(
'success' => false,
'errno' => 'no error',
));
exit;
第一個工作正常,並吐出類似:
error /tmp/phpk3RICU -> /home/username/Websites/website/photos/o/2-4a3354dd017a9.jpg
也許我是有點linux的小白,但我實際上在我的系統上找不到/tmp/phpk3RICU
(腳本退出後立即刪除它,或者是什麼?)。儘管更多關於這一點。
如果我刪除第一個調試檢查並讓move_uploaded_file
運行,第二個調試檢查似乎從未被執行,這導致我相信move_uploaded_file掛起。
如果不使用$tmp_name
我使用的文件我知道不存在,那麼第二次檢查DOES得到執行。所以......它似乎只是不想移動該tmp文件,但它不報告錯誤。
我在我的Unbutu機器上運行LAMP堆棧的全新安裝,通過apt-get安裝...讓我知道你是否需要更多信息。
哦..並不知道它是否相關,但文件通過flash上傳。
mkdir實際上失敗了......似乎不想創建文件,並且不會吐出錯誤。 – mpen 2009-06-13 07:52:56