2015-12-10 56 views
0

這是我的錯誤:上傳的PHP腳本錯誤的運動圖像文件夾

enter image description here

(添加註釋,以55行)一個想法是修改腳本,沒有移動的文件,但不知道該怎麼做。不知道如果這甚至會工作,因爲我需要它輸出到文件夾上傳具有相同名稱的文件已經開始。

<html> 
<body> 

<form action="upload.php" method="post" enctype="multipart/form-data"> 
    Title:<br> 
    <input type="text" name="imgTitle" required><br><br> 
    Upload a File: <input type="file" name="imgUploaded" id="imgUploaded"><br><br> 
    Comments: <br> 
    <textarea name="imgDesc" rows="4" cols="35"required></textarea><br><br> 

    <input type="submit" value="Upload Image" name="submit"> 
</form> 

</body> 
</html> 
<?php 
if (isset($_POST["submit"])) { 

$target_dir = "uploads/"; 
$target_file = $target_dir . basename($_FILES["imgUploaded"]["name"]); 
$uploadOk = 1; 
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
$imgTitle = $_POST['imgTitle']; 
$imgDesc = $_POST['imgDesc']; 
$servername = "sn"; 
$username = "un"; 
$password = "pw"; 
$dbname = "db"; 
echo $imgDesc; 
if(isset($_POST["submit"])) { 
    $check = getimagesize($_FILES["imgUploaded"]["tmp_name"]); 
    if($check !== false) { 
     echo "File is an image - " . $check["mime"] . "."; 
     $uploadOk = 1; 
    } else { 
     echo "File is not an image."; 
     $uploadOk = 0; 
    } 
} 
if (file_exists($target_file)) { 
    echo "Sorry, file already exists."; 
    $uploadOk = 0; 
} 
if ($_FILES["imgUploaded"]["size"] > 500000) { 
    echo "Sorry, your file is too large."; 
    $uploadOk = 0; 
} 
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif") { 
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; 
    $uploadOk = 0; 
} 
if ($uploadOk == 0) { 
    echo "Sorry, your file was not uploaded."; 
} else { 
    if (move_uploaded_file($_FILES["imgUploaded"]["tmp_name"],$target_file)) // this is line 55 
{ 
     $imgPath = $_FILES["imgUploaded"]["name"]; 
     $conn = mysqli_connect($servername, $username, $password, $dbname); 
     $sql = "INSERT INTO BrianJones (sqlName, sqlDesc, sqlPath) 
     VALUES ('$imgTitle', '$imgDesc', '$imgPath')"; 
     if (mysqli_query($conn, $sql)) { 
      echo "New record created successfully"; 
     } else { 
      echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
     } 
     mysqli_close($conn); 

     echo "The file ". basename($_FILES["imgUploaded"]["name"]). " has been uploaded."; 
    } else { 
     echo "Sorry, there was an error uploading your file."; 
    } 
} 
} 
?> 

不知道如何解決這個問題,顯然是想要我的臨時圖像移動到文件夾上傳,因爲我沒有權限時,這是一個錯誤。我怎樣才能解決這個問題?

注:我不能給自己任何權限,它工作正常,在本地主機,但我不得不把它上傳到網絡服務器和測試,我只能修改PHP和不更改任何服務器設置。

+0

您應該檢查該文件夾是否存在,以及該文件夾是否具有服務器的寫入權限。 '注意:我不能給自己任何權限'< - 你錯了。您可以更改您擁有的所有文件夾和文件的權限。 – bansi

回答

1

從你的錯誤。

我建議修復文件夾的權限,以能寫。

+0

嗯,現在好了,我想想,我不得不連接到PW爲了上傳的文件保護SFTP,所以我假設我需要的地方輸入這些詳細信息,並自動瞬移到SFTP ..怎麼會我會這麼做嗎? –

0

試試這個,它是用來移動和上傳任何文件和圖像,並將其存儲到數據庫中。

if(isset($_POST['submit'])!=""){ 
    $name=$_FILES['file']['name']; 
    $size=$_FILES['file']['size']; 
    $type=$_FILES['file']['type']; 
    $temp=$_FILES['file']['tmp_name']; 
    $caption1=$_POST['caption']; 
    $link=$_POST['link']; 
    move_uploaded_file($temp,"upload/".$name); 

}