将图像上传到Web服务器并在数据库中存储路径

时间:2015-01-24 20:42:41

标签: php html mysql linux webserver

我正在尝试使用php将图像上传到我的网络服务器,并将图像路径存储在mysql数据库中,我无法做到这一点。任何帮助,将不胜感激。当我点击提交时,我可以看到一个空白的php页面..

post.php中

<?php


$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";

$name = $_POST['ctitle'];
$description = $_POST['cdesc'];
$image = $_FILES['image']['name'];
$filepath = "images/";
$filepath = $filepath . basename($image);

if(move_uploaded_file($image, $filepath)){
$con = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $con )
{
  die('Could not connect: ' . mysql_error());
}
$sql="INSERT INTO bbmp (dt,title,description,filename,img_path)
VALUES (NOW(), '$name','$description','$image','$filepath')";

mysql_select_db('bbmp',$con);
$retval = mysql_query( $sql, $con );
if(! $retval )
{
  die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
mysql_close($con);
}

?> 

的index.html

   <!DOCTYPE html>
<html lang="en">
<head>
        <meta charset="UTF-8">
        <title></title>
</head>
<body>
        <h1>Post your complaints here</h1>
        <form method="POST" action="post.php">
                <input type="name" name="ctitle"><br />
                <textarea name="cdesc"></textarea><br />
                <input type="file" name="image" ><br />
                <input type="submit" name="submit" value="submit">
        </form>
</body>
</html>

SQL

CREATE TABLE IF NOT EXISTS `bbmp` (
  `id` int(100) unsigned NOT NULL AUTO_INCREMENT,
  `dt` datetime NOT NULL,
  `title` varchar(255) NOT NULL,
  `description` varchar(255) NOT NULL,
  `filename` varchar(255) NOT NULL,
  `img_path` int(255) NOT NULL,
  UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

1 个答案:

答案 0 :(得分:2)

上传文件时需要有效的enctype:enctype="multipart/form-data"

将其更改为:

  <form method="POST" action="post.php" enctype="multipart/form-data"> 

你也需要改变变量,因为$ _FILES ['image'] ['name']只是一个名字,所以把它放到运行move_uploaded_file()函数

 $image = $_FILES['image']['tmp_name'];  
相关问题