如何将图像文件保存或移动到我的php文件夹中包含的文件夹中

时间:2017-06-04 18:06:01

标签: php

我正在构建一个媒体,我想要我的用户  上传尽可能多的图片,但我的问题  是如何将此图像保存或移动到文件夹  叫照片包含在名为my_media的文件夹中,  my_media文件夹包含我的php文件,例如  index.php等等,我可以将此文件移动到  my_media文件夹一旦上传,但我不想要  请将文件用于安全目的  有人应该修复我的代码谢谢。

这是我的代码

require_once ('connect.php');

if (isset($_POST['Submit'])) {

 $tmp_dir = "my_media/photo";
 //it will move to my_media if assign my_media only to the variable $tmp_dir
 //but don't work with  $tmp_dir = "my_media/photo"

 $tmp_name = $_FILES["image"]["tmp_name"];
 $name = $_FILES["image"]["name"];

move_uploaded_file($tmp_name,$tmp_dir . basename($name));

    //rename("my_media/photo","my_media/photo". basename($name));
$location=$name;
$fname=$_POST['first_name'];
$lname=$_POST['last_name'];


$sql = "INSERT INTO tbl_image (first_name, last_name, image_location)
VALUES ('$fname', '$lname', '$location')";
 $res = mysqli_query($con,$sql);
//with this my the image name is inserted into my database but not into the foldermy_media/photo
header("Location:imgview.php");
}

2 个答案:

答案 0 :(得分:0)

require_once ('connect.php');
if (isset($_POST['submit'])) {

 $tmp_dir = "/my_media/photo/";
 $name = time().$_FILES["image"]["name"];

 move_uploaded_file($_FILES["image"]["tmp_name"], $name);
 $location=$name;
 $fname=$_POST['first_name'];
 $lname=$_POST['last_name'];


 $sql = "INSERT INTO tbl_image (first_name, last_name, image_location)
 VALUES ('$fname', '$lname', '$location')";
 $res = mysqli_query($con,$sql);
 header("Location:imgview.php");
}

答案 1 :(得分:0)

首先,让我们删除所有/并将其替换为PHP DIRECTORY_SEPARATOR

 $tmp_dir = "my_media". DIRECTORY_SEPARATOR . "photo" . DIRECTORY_SEPARATOR ;

第二,为确保您有权写入该文件夹,请让PHP创建该文件夹。

要使其正常工作,请先删除您创建的文件夹。

if(!is_dir($tmp_dir)){
  mkdir($tmp_dir);
  move_uploaded_file($tmp_name,$tmp_dir . basename($name));
}else{
  move_uploaded_file($tmp_name,$tmp_dir . basename($name));
}

最后但并非最不重要的是,您对SQL注入持开放态度。请改用预备语句。 Example