对于学校项目,我必须将图像保存在mysql数据库中,然后在网站上显示这些图像。为此,我使用以下代码保存图像:
$link = $link = new PDO('mysql:host=localhost;dbname=myDatabase', 'root', '');
$user = $_POST['user'];
$image = [];
$image = $_FILES['file'];
$image['string_scape'] = $link->quote(file_get_contents($_FILES['file']['tmp_name']));
$link->query('INSERT INTO userImage VALUES(NULL, "'.$image['string_scape'].'", "'.$image['type'].'", '.$image['size'].', '.$user.', NOW())') or die (print_r($link->errorInfo()));
$link = null;
这是我为图片制作的表格:
+------------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+----------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| File | longblob | NO | | NULL | |
| Type | text | NO | | NULL | |
| Size | int(11) | NO | | NULL | |
| User | int(11) | NO | | NULL | |
| Date_added | datetime | NO | | NULL | |
+------------+----------+------+-----+---------+----------------+
为了显示图像,我使用以下代码:
//PHP file "show-image.php"
$link = new PDO('mysql:host=localhost;dbname=distribuidora', 'root', '');
$result = $link->query('SELECT * FROM userImage WHERE id = '.$_GET['id']) or die (print_r($link->errorInfo()));
$image = $result->fetch(PDO::FETCH_ASSOC);
header("Content-type:".$image["Type"]);
header("Content-Length:".$image["Size"]);
echo $image["File"];
HTML:
<img src="show-image.php?id=1" alt="image" />
这是我去年完成的方式,它过去工作得很好,但自上周以来我无法显示图像。我已尝试过不同的标题和其他问题中给出的不同解决方案,但仍然无效。
答案 0 :(得分:0)
我认为$image = $_FILES['file'];
中的错误应该将文件命名为$image = $_FILES['file']['name'];
,并将html更改为<img src="show-image.php?id=1" alt="image" name='name' />