gpt4 book ai didi

php - 我确保数据库有图像并且数据库连接正确,但我无法显示图像

转载 作者:行者123 更新时间:2023-11-29 12:39:44 25 4
gpt4 key购买 nike

我的显示代码是:

 <?php
include "file_constants.php";
// just so we know it is broken
error_reporting(E_ALL);
// some basic sanity checks
if(isset($_GET['id']) && is_numeric($_GET['id'])) {
//connect to the db
$link = mysql_connect("$host", "$user", "$pass")
or die("Could not connect: " . mysql_error());

// select our database
mysql_select_db("$db") or die(mysql_error());

// get the image from the db
$sql = "SELECT image FROM test_image WHERE id=" .$_GET['id'] . ";";

// the result of the query
$result = mysql_query("$sql") or die("Invalid query: " . mysql_error());

// set the header for the image
header("Content-type: image/jpeg");

echo mysql_result($result, 0);
// close the db link
mysql_close($link);
}
else {
echo 'Please use a real id number';
}
?>

我确保数据库有图像并且数据库连接正确。我可以将图像从 php 上传到 phpmyadmin (MYSQL)。但是,我无法显示图像。(http:///file_display.php?id=1)有人可以帮我在php中显示图像吗?非常感谢!

文件插入代码:

<html>
<head><title>File Insert</title></head>
<body>
<h3>Please Choose a File and click Submit</h3>

<form enctype="multipart/form-data" action=
"<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
<input name="userfile" type="file" />
<input type="submit" value="Submit" />
</form>

<?php

// check if a file was submitted
if(!isset($_FILES['userfile']))
{
echo '<p>Please select a file</p>';
}
else
{
try {
$msg= upload(); //this will upload your image
echo $msg; //Message showing success or failure.
}
catch(Exception $e) {
echo $e->getMessage();
echo 'Sorry, could not upload file';
}
}

// the upload function

function upload() {
include "file_constants.php";
$maxsize = 10000000; //set to approx 10 MB

//check associated error code
if($_FILES['userfile']['error']==UPLOAD_ERR_OK) {

//check whether file is uploaded with HTTP POST
if(is_uploaded_file($_FILES['userfile']['tmp_name'])) {

//checks size of uploaded image on server side
if( $_FILES['userfile']['size'] < $maxsize) {

//checks whether uploaded file is of image type
//if(strpos(mime_content_type($_FILES['userfile']['tmp_name']),"image")===0) {
$finfo = finfo_open(FILEINFO_MIME_TYPE);
if(strpos(finfo_file($finfo, $_FILES['userfile']['tmp_name']),"image")===0) {

// prepare the image for insertion
$imgData =addslashes (file_get_contents($_FILES['userfile']['tmp_name']));

// put the image in the db...
// database connection
mysql_connect($host, $user, $pass) OR DIE (mysql_error());

// select the db
mysql_select_db ($db) OR DIE ("Unable to select db".mysql_error());

// our sql query
$sql = "INSERT INTO test_image
(image, name)
VALUES
('{$imgData}', '{$_FILES['userfile']['name']}');";

// insert the image
mysql_query($sql) or die("Error in Query: " . mysql_error());
$msg='<p>Image successfully saved in database with id ='. mysql_insert_id().' </p>';
}
else
$msg="<p>Uploaded file is not an image.</p>";
}
else {
// if the file is not less than the maximum allowed, print an error
$msg='<div>File exceeds the Maximum File limit</div>
<div>Maximum File limit is '.$maxsize.' bytes</div>
<div>File '.$_FILES['userfile']['name'].' is '.$_FILES['userfile']['size'].
' bytes</div><hr />';
}
}
else
$msg="File not uploaded successfully.";

}
else {
$msg= file_upload_error_message($_FILES['userfile']['error']);
}
return $msg;
}

// Function to return error message based on error code

function file_upload_error_message($error_code) {
switch ($error_code) {
case UPLOAD_ERR_INI_SIZE:
return 'The uploaded file exceeds the upload_max_filesize directive in php.ini';
case UPLOAD_ERR_FORM_SIZE:
return 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form';
case UPLOAD_ERR_PARTIAL:
return 'The uploaded file was only partially uploaded';
case UPLOAD_ERR_NO_FILE:
return 'No file was uploaded';
case UPLOAD_ERR_NO_TMP_DIR:
return 'Missing a temporary folder';
case UPLOAD_ERR_CANT_WRITE:
return 'Failed to write file to disk';
case UPLOAD_ERR_EXTENSION:
return 'File upload stopped by extension';
default:
return 'Unknown upload error';
}
}
?>
</body>
</html>

SQL 是:

create table test_image (
id int(10) not null AUTO_INCREMENT PRIMARY KEY,
name varchar(25) not null default '',
image blob not null
);

教程是http://vikasmahajan.wordpress.com/2010/07/07/inserting-and-displaying-images-in-mysql-using-php/

最佳答案

如果您仅将图像名称保存在数据库中,这将在 HTML 中显示该图像

<?php
$result = mysql_query("$sql") or die("Invalid query: " . mysql_error());
while($row = mysqli_fetch_array($result)) {
echo '<img src="www.yourdomain.com/your/directory/"'. $row["image "].'/>';
}
?>

注意:如果只有一行,则不需要使用 while 循环

关于php - 我确保数据库有图像并且数据库连接正确,但我无法显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26292647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com