2015-04-17 50 views
-2

我正在編寫一個腳本來將用戶輸入和圖像上傳到我的文件系統(當前位於不同服務器上)的某個位置。 我得到一個錯誤 move_uploaded_file(圖片//檢驗.pdf):未能打開流:權限被拒絕..move_uploaded_file錯誤php不會上傳到文件路徑

$dbh = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_USERNAME, DB_USERNAME, DB_PASSWORD); 

$title = $_POST["title"]; 
$authors = $_POST["authors"]; 
$description = $_POST["description"]; 
$price = $_POST["price"]; 

$uploads_dir = "images/"; 

     $tmp_name = $_FILES["image"]["tmp_name"]; 
     $name = $_FILES["image"]["name"]; 
     $tmp_name2 = $_FILES["content"]["tmp_name"]; 
     $name2 = $_FILES["content"]["name"]; 



    move_uploaded_file($tmp_name, "$uploads_dir/$name"); 
    move_uploaded_file($tmp_name2, "$uploads_dir/$name2"); 

    $file_path=$uploads_dir. basename($_FILES["image"]["name"]); 
    $file_path2=$uploads_dir. basename($_FILES["content"]["name"]); 

$stmt = $dbh->prepare("INSERT INTO books (title,authors,description,price,image, content) 
VALUES ('$title', '$authors', '$description', '$price',$file_path', '$file_path2')") ; 
$stmt->execute(); 

我看了看這裏類似的問題,但答案還沒有結束的我問題。我已經嘗試了$ uploads_dir變量作爲圖像/和完整路徑/項目/文件夾/用戶/圖像/都給出了相同的錯誤。

注意:此php腳本位於images /的父文件夾中。

+0

use move_uploaded_file($ tmp_name,$ uploads_dir $ name); – Saty

+1

授予圖像文件夾的權限 –

+0

我收到一個語法錯誤:解析錯誤:語法錯誤,意外的'$ name' – stark

回答

2

它看起來像一個文件權限錯誤。您可以檢查目錄是否可寫或不,

$directoryName = "specify your directory name here"; 
if(is_writable($directoryName){ 
    echo "Directory is writable"; // Returns TRUE if it's writable. 
} 
else{ 

} 

更多here

+0

好吧,有趣的,謝謝你..這似乎是目錄不可寫,也許我正在寫chmod命令不正確? – stark

3

您的問題顯然與權限有關。運行php的用戶沒有權限寫入這個images文件夾。更改文件夾的所有者或更改權限。

+0

我在文件夾上使用了命令chmod 755,這並沒有改變任何東西。 – stark

+3

755可能無法幫助您,因爲系統用戶仍然無法寫入目錄。嘗試777,但請記住,這是不安全的。更好的方法是將文件夾的所有者更改爲運行Apache服務器的系統用戶/ PHP-FPM –

+0

哦,我正在考慮將工作777沒有改變錯誤,你知道我如何改變所有者嗎?我只是嘗試chown -R user images/ – stark