2017-04-13 65 views
-1

我的代碼可以成功地將Word文件上傳到我的服務器上。問題是它將它保存在php文件所在位置的子文件夾中,所以如果有人放置目錄和文件名,它是公開可用的。我想將文件保存在非公用文件夾中,但我無法弄清楚路徑是什麼。我在一個共享服務器與cPanel上。如何使用PHP將上傳的文件保存在非公共文件夾中

$target_dir = "uploads/"; 
$file_name = basename($_FILES["fileToUpload"]["name"]); 
$target_file = $target_dir . $file_name; 
$fileType = pathinfo($target_file, PATHINFO_EXTENSION); 
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) 
{ 
    echo "The file ". $file_name. " has been uploaded. <br>"; 
} else { 
    echo "Sorry, there was an error uploading your file."; 
    exit; 
} 
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file) 

的文件正在被保存到「/家/名爲myUsername /的public_html /恢復/上傳」,但我想將它保存爲「」的/ home /名爲myUsername /上傳。」我只知道如何保存。文件到PHP程序所在的文件夾中的文件夾我知道這可能是很容易的,但我一直在谷歌搜索這一段時間,並不能找到答案

回答

1

需要記住的一點是,PHP從整個操作系統獲取方向,而不是Web根目錄。這意味着要麼你需要知道文件夾的絕對地址,要麼你上下導航包含文件夾。

鑑於你的問題,該位置將是:

move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], "../../uploads/$target_file"); 

鑑於你的榜樣,我認爲劇本是resume目錄內運行。第一個..上升到public_html,第二個到myusername。從那裏它的下降uploads

另一種方法是使用絕對地址:

move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], "/home/myusername/uploads/$target_file"); 

在這兩種情況下,你需要確保PHP有寫的權限有問題的文件夾中。

+0

謝謝!這工作完美。 –

+0

@MBACoder不客氣。你介意接受這個答案嗎? – Manngo

0

只要改變這一點:

$target_dir = "uploads/"; 

對此:

$target_dir = "../../uploads/"; 

您可以保存在您喜歡的任何目錄中(只要它存在並且進程有權寫入)。你所要做的就是指定目錄。

相關問題