我有一個網站進行媒體轉換,用戶可以上傳視頻,音頻或圖像文件,並將其轉換爲3種流行格式。轉換腳本工作正常,但我遇到了文件上傳到tmp目錄的問題。我已經嘗試了兩種情況,我都很好,但都不起作用,在我看來是權限相關,但我似乎可以解決這個問題。 我現在在本地工作,而我正在解決問題。更改PHP臨時目錄
方案1:
- 文件被上傳到默認的本地tmp目錄(C:\ WINDOWS \ tmp目錄) - 工作正常
- 嘗試使用上傳tmp文件運行轉換腳本,它不」將不起作用 - 運行命令行工作完全正常,雖然
方案2:
- 文件I ŝ上傳到目錄中我已經給IIS_IUSRS的完全控制(用於測試)和文件不會上傳 - 是該目錄的拼寫是否正確(我改變php.ini中的upload_tmp_dir值)
兩個網站的JavaScript將XMLHttpRequest發送到PHP文件,以及PHP文件本身駐留的站點都是IIS站點,所以我假設該腳本正在以IIS_IUSRS運行。
編輯:不再爲場景1創建Temp文件,無法弄清楚爲什麼我假設使用權限玩弄了一些東西,因爲代碼沒有改變。我已經給修改IIS_USRS和用戶嘗試讓它再次運行,但沒有運氣:(儘管錯誤日誌仍然寫入同一文件夾...怪異
注意:「tmp_name」值的$我發送的_FILES變量仍然具有「C:\ WINDOWS \ Temp \'文件名'」的值,但該文件不存在
編輯:另一個新的開發,它顯示它不是權限問題,因爲我可以創建一個臨時文件通過$ temp_file = tempnam(sys_get_temp_dir(),'Test');但它顯然不包含上傳的數據,因此它不能解決我的問題
我從來沒有使用IIS,但也許使用/而不是\目錄分隔符?或者使用\\,因爲PHP將\視爲轉義元字符? – 2014-10-09 14:03:01
你是正確的...在我的代碼中,我有\\這不應該是問題,因爲當我有一個文件坐在目錄我可以硬編碼源文件和目標文件,它工作正常 - 但感謝您輸入 – mgrenier 2014-10-09 14:05:22
在php.ini中怎麼樣?回聲phpinfo()時,設置看起來不錯嗎? – 2014-10-09 14:07:13