2015-12-10 55 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); 

}