用PHP移动上传的文件

时间:2012-03-19 22:17:06

标签: php mysql

我想允许用户在我的网站上上传他们的个人资料图片的图片(文件)。他们通过HTML表单上传图像,但我无法将文件移动到我想要的文件夹。我不想乱用php.ini文件来更改上传路径。我想使用move_uploaded_file()。

这是我的HTML:

<form enctype="multipart/form-data" method="post" action="upload_img.php">
    <input type="hidden" name="MAX_FILE_SIZE" value="32768"/>
    <input type="text" name="name" value=""/>
    <input type="file" name="picture" value="picture"/>
    <input type="submit" name="submit" value="upload"/>
</form>

我的PHP:

<?php
  define('GW_UPLOADPATH', 'images/');
  $picture= $_FILES['picture']['name'];
  $name= $_POST['name'];
  $tmp= $_FILES['picture']['tmp_name'];

  var_dump($picture);
  var_dump($name);
  var_dump($tmp);

  $connect= mysqli_connect(//connect params)
  or die('error connecting with the database');

  $query= "INSERT INTO pics (pic, name) VALUES ('$picture', '$name')";

  $target= GW_UPLOADPATH . $picture ;

  if (move_uploaded_file($_FILES['picture']['tmp_name'], $target);))
     {
      mysqli_query($connect, $query)
          or die('error with query');
     }

?>

我知道文件被上传到tmp文件夹,因为我可以看到它,但它被命名为sess_96bsj29ub3tndnd2853d24k38adrbqoo.file这应该发生什么?我究竟做错了什么?

2 个答案:

答案 0 :(得分:3)

$_FILES['picture']['tmp_name'] 

将指向该文件夹中的文件以及何时调用此行

move_uploaded_file($_FILES['picture']['tmp_name'], $target);

您可以将temp文件夹中的文件放到任何您想要的位置。只需将$ target设置为有效的现有目录。

答案 1 :(得分:1)

只需删除分号形式if if:

if (move_uploaded_file($_FILES['picture']['tmp_name'], $target)))
    {

    mysqli_query($connect, $query)
    or die('error with query');
    }