2016-02-13 64 views
1

我不知道如何解決此問題,但問題是它不會上傳到服務器,即時通訊使用託管網站它創建文件夾就好,但不會移動它。移動的編碼在下面。php move_uploaded_file不會將文件移動到託管服務器

這是錯誤我得到 警告:move_uploaded_file(./的userdata/profile_pics/iOy1pQXTZsLw7VA /)[function.move上傳文件]:未能打開流:是在/ home/a4640336目錄/public_html/account_settings.php上線103

和以及該錯誤代碼

警告:move_uploaded_file()以[function.move上傳文件]:無法移動「/ TMP/phpX1zVno '到' ./userdata/profile_pics/iOy1pQXTZsLw7VA/」在上線/home/a4640336/public_html/account_settings.php 103

move_uploaded_file(@$_FILES["profilepic"]["tmp_name"],"./userdata/profile_pics/$rand_dir_name/".$FILES["profilepic"]["name"]); 
     echo "Your profile pic has been updated!"[email protected]$_FILES ["profilepic"]["name"]; 
     //$profile_pic_name = @$_FILES["profilepic"] ["name"]; 
     //$profile_pic_query= mysql_query("UPDATE users SET profile_pic='$rand_dir_name/$profile_pic_name' WHERE username='$username'"); 
     //header("location: account_settings.php"); 

在所有我曾試圖改變它位於何處讓它直接從巫師領導,但它不會改變。如果有人能幫助請幫助我!

PS註釋掉部分被做是爲了能夠看到錯誤

+0

是正確的道路? –

+0

嘗試給你想要保存的位置的正確路徑。如果你上傳的目錄是dir,我們也可以檢查dir是否有可寫的權限../向上移動等等。 –

+0

我已經改變了道路,即我的源與我改變它../到./甚至直接從/ home/...,然後甚至/ public_html/...的完整路徑,沒有任何東西迄今爲止工作 – TheLiveitup34

回答

1

對於使用PHP在Windows和IIS的,你應該在php.ini"upload_tmp_dir"值設置爲圍繞在您的網站的一些目錄目錄是,創建該目錄,然後設置它爲您的網站目錄設置相同的權限。否則,當您上傳文件並進入C:\ WINDOWS \ Temp,然後將其移至您的網站目錄時,其權限將無法正確設置。並且如果您嘗試上傳大於post_max_size值的文件(或多個文件),頁面只會刷新本身,並且不會引發錯誤。

目標目錄必須存在; move_uploaded_file()不會自動爲您創建。

您必須

  1. 確保該文件不爲空。

  2. 請確保文件名中包含英文字符,數字和(_-。)符號,以獲得更多保護。

  3. 確保文件名不超過250個字符。
  4. 檢查您想允許在您的 項目中使用的文件擴展名和MIME類型。您可以使用:pathinfo()。或者你可以使用正則表達式來檢查文件擴展名,例如
  5. 檢查文件大小並確保php.ini上傳文件的限制 是你想要的,你可以從here開始。
  6. 檢查文件內容,如果有一個壞的代碼或類似這樣的 功能的東西
move_uploaded_file($_FILES["file"]["tmp_name"], "../uploads/" . $_FILES["file"]["name"]); 

還要檢查dir寫入權限

0

你需要使用服務器路徑文件上傳

$files = glob($_SERVER["DOCUMENT_ROOT"]."/myFolder/*"); 

$ _ SERVER [ 「DOCUMENT_ROOT」]會得到這樣的VAR /主機服務器的路徑/的public_html /您的文件夾

願這幫助你

相關問題