-3

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

这是我的代码

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";
4

3 回答 3

1

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

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

将图像保存到 mysql 数据库

将图像保存到 mysql 数据库

试试看,如果它对你有帮助,请告诉我。

祝你好运!

于 2013-02-21T12:14:13.917 回答
0

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

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

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

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

于 2013-02-21T12:15:58.380 回答
0

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

于 2013-02-21T12:02:16.127 回答