PHP文件上传

时间:2011-07-13 07:13:52

标签: php

我正在构建一个简单的文件上传功能。上传的文件应该/存储到“uploads”文件夹中。但他们不会进入文件夹。有帮助吗?

以下是代码:

<?php

include("connect.php");
$file_name = trim($_POST['file_name']);
$file_size = $_FILES['size'];
$file_type = $_FILES['type'];
$description = trim($_POST['description']);
$date_entered = trim($_POST['date_entered']);

$query = "INSERT INTO uploads (id, file_name, file_size, file_type, description, date_entered)
VALUES ('', '$file_name', '$file_size', '$file_type', '$description', '$date_entered')";
$results = mysql_query($query);

if ($results)
{
  echo "Details added.";

  move_uploaded_file($_FILES[$file_name]['tmp_name'], "uploads/$id");
}

mysql_close();
?>

3 个答案:

答案 0 :(得分:1)

将move_uploaded_file调用更改为:

move_uploaded_file($_FILES['file_name']['tmp_name'], "uploads/$id");

还要确保Web服务器用户可以写入uploads/文件夹。这通常通过在SSH或FTP中使用chmod将权限设置为0777来完成。

答案 1 :(得分:0)

上传文件夹在哪个文件夹中?我假设它是[代码文件夹] /上传,但你永远不知道..否则,查询是否抛出异常?还是假的?是否已打印“详细信息”?

答案 2 :(得分:0)

仅仅因为你在你的网站上运行一个名为somthing / directory / file.php的脚本并不会使“uploads”被视为某个/ directory / uploads / ..

另外,请检查目录的权限。

您是将文件名设置为单独的名称而不是使用上传的文件名?这是你的形式(你没有包括我们检查的表格)

我没有看到你在任何地方设置$ id?

SQL是否有效? move_uploaded_file返回true / false,你不检查移动是否成功。