【发布时间】:2015-09-30 13:32:51
【问题描述】:
我目前正在尝试创建一个 .php 页面来上传图像以存储在 phpmyadmin 的表中。然后显示它们。
首先,将图像添加到数据库中的表中。 phpmyadmin 中的层次结构是:localhost -> images -> Greeting_Cards。
目前我正在尝试插入到贺卡表格中,因为稍后我将有多个类别的多个表格并分别显示它们。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>upload</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file_upload" />
<input type="submit" name="submit" value="upload" />
</form>
<?php
include '/var/db_file.php';
if(isset($_POST['submit']))
{
$conn = mysql_connect("localhost","root", $pass);
mysql_select_db("images");
/* Variable inits */
$imageName = $imageData = $imageType = null;
$imageName = mysql_real_escape_string($_FILES["image"]["name"]);
$imageData = mysql_real_escape_string(file_get_contents($_FILES["image"]["tmp_name"]));
$imageType = mysql_real_escape_string($_FILES["image"]["type"]);
if(substr($imageType,0,5) == "image"){
mysql_query("INSERT INTO 'Greeting_Cards' VALUES('','$imageName','$imageData')");
echo "Image Uploaded!";
}
else{
echo "Has to be an image!";
}
}
?>
</body>
</html>
上传的图片不会显示在表格中。我正在正确登录数据库。 “贺卡”表下的结构是:id(int11)、name(varchar30) 和 image(blob)。 www.mydomainname.net/upload.php 上显示的唯一错误/警告是:
注意:未定义索引:第 27 行 /var/www/html/upload.php 中的图像
注意:未定义索引:第 28 行 /var/www/html/upload.php 中的图像
警告:file_get_contents():文件名不能为空 /var/www/html/upload.php 第 28 行
注意:未定义索引:第 29 行 /var/www/html/upload.php 中的图像 必须是图像!
要显示图像,我必须先通过这一步。如果有任何更新,将报告此帖子。
修复 1:错误名称:更改为 name="image" 以匹配 php 变量参数。 修复 2:表名的反引号不是单引号。可选:指定列。
提前感谢您的帮助!
【问题讨论】:
-
输入名称是file_upload
<input type="file" name="file_upload" />所以用$_FILES["file_upload"]代替$_FILES["image"] -
天哪……我怎么忽略了这一点。谢谢!警告和通知消失了。但是你碰巧知道我在哪里可以找到表格中的图像。它不在 phpmyadmin 的“浏览”下。也许这是我在 phpmyadmin 中没有勾选的设置?
-
您的查询有误。您需要指定要插入的列。
-
这是表名的反引号,而不是单引号。这些列是可选的(两种方法都做了)。
-
只是旁观:一般来说,我建议将图像保存到文件系统,并在数据库中保存一个文件名。一旦你在某种前端展示它们,当很多用户访问你的网站时,你将很难过。
标签: php html mysql phpmyadmin