我正在使用move_uploaded_file函數上傳文件。文件被移到正確的目錄中,我看到它的物理存在,但我無法打開它們。我得到「訪問被拒絕」錯誤。我查看文件的屬性,發現它沒有所有者。上傳的文件沒有文件所有者(在PHP中使用move_uploaded_file)
順便說一句,我在Windows 2008
我檢查的權限運行IIS,一切設置正確。運行Web服務的用戶具有完全的管理權限。
此外,我用copy()替換了move_uploaded_file函數,並且我能夠訪問該文件。它也讓用戶運行服務器作爲其所有者。
究竟什麼可能是錯的?
謝謝感謝您的幫助。
更新: 移動文件後,我嘗試使用chmod($ filename,0655)設置權限,但也沒有工作。
更新2(解決方案): 好吧,我想通了。 系統管理員沒有設置upload_tmp_dir。一旦我們添加了一個路徑,它就起作用了。
的源代碼:
// Check if file was uploaded
if(isset($_FILES['formname']) && $_FILES['formname']['size'] > 8){
$displayName = $_FILES['formname']['name'];
$displayName = unixfilename(basename($displayName));
$tempName = $_FILES['formname']['tmp_name'];
$filename = $_FILES['formname']['name'];
$fileType = substr($filename, strrpos($filename,".")+1);
$filename = substr($filename,0,strrpos($filename,".")) . date("_Ymd_His") . ".$fileType"; // Add unique identifier
$filename = unixfilename(basename($filename));
$destinationPath = "xx\yy\zz\\";
// Check if the file is of a valid type
if($fileType == "txt"){
// Check if file exists in processor folder
if(!file_exists($destinationPath.$filename)){
if(move_uploaded_file($tempName,$destinationPath.$filename)){
if(file_exists($destinationPath.$filename)){
// success
請顯示源代碼。 – 2010-11-01 20:59:06
新增源代碼 – Kel 2010-11-01 21:06:23