图像没有上传到数据库我已经尝试了两种方法,但不会工作

时间:2013-02-21 11:58:32

标签: php mysql

我正在开发简单的内容管理系统,同时尝试上传图像时没有发生任何事情。它只是刷新页面。我试过没有图像,它的工作正常,同时将图像添加到它无法正常工作

这里是我的代码

if(isset($_POST[submit]) && $_FILES['userfile']['size'] > 0){                  

$information_id = mysql_prep($_GET['info']);
$menu = trim(mysql_prep($_POST['menu']));  // cut out whitespace for menu

$position = mysql_prep($_POST['position']);
$visible = mysql_prep($_POST['visible']);

$img_des = mysql_prep($_POST['img_des']);
$fileName = $_FILES['userfile']['name'];
$tmpName  = $_FILES['userfile']['tmp_name'];
$fileType = $_FILES['userfile']['type'];
$fileSize = $_FILES['userfile']['size'];


$fp      = fopen($tmpName, 'r');
$image = fread($fp, filesize($tmpName));
$image = addslashes($image);
fclose($fp);
$content = mysql_prep($_POST['content']);
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}


$query = "INSERT INTO pages (
menu, position, visible, img_des, name, type, size, image, content, information_id
) VALUES (
'{$menu}', {$position}, {$visible}, '{$fileName}', '{$fileType}', {$fileSize},             
 {$image}, '{$img_des}', '{$content}', {$information_id}   )";
  if ($result = mysql_query($query, $connection))    {
  $message = "The new page was created successfully";

3 个答案:

答案 0 :(得分:1)

我认为您需要首先对图像进行base64_encode,然后再将其保存到数据库中。我使用它并且效果很好。

查看以下链接以获取更多信息:

Save image to mysql db

Save image to mysql db

尝试一下,让我知道它是否对你有帮助。

祝你好运!

答案 1 :(得分:0)

您需要将图像上传到服务器上的文件夹,然后将图像的路径保存到数据库中。

答案 2 :(得分:0)

我相信您的问题与您的查询有关。您应该转义输入并使用sprintf语句。在这里看一个例子:

http://php.net/manual/en/function.mysql-query.php

此外,不推荐使用mysql_query。考虑使用mysqli

http://www.php.net/manual/en/mysqli.query.php