![](/img/trans.png)
[英]How am I supposed to store a value from my database as a variable in php using PHP and SQL?
[英]how to store & get file from database using codelgniter php & my sql
我可以將文件存儲到數據庫中,但無法獲取/顯示存儲在數據庫中的文件
該文件存儲在數據庫中,但無法從數據庫中顯示
我正在使用以下代碼
<?php
class file_upload extends CI_Controller
{
public function index()
{
echo " <head>
<title>Upload Image To Database</title>
</head>
<body>
<!-- (A) HTML FILE UPLOAD FORM -->
<form method='post' enctype='multipart/form-data'>
<input type='file' name='upload' accept='.png,.gif,.jpg,.webp' required/>
<input type='submit' name='submit' value='Upload Image'/>
</form>";
if (isset($_FILES['upload']))
{
$imgname=$_FILES["upload"]["name"];
$data["img_name"]=$_FILES['upload']['name'];
$data["img_data"]=file_get_contents($_FILES["upload"]["tmp_name"]);
$this->db->insert('images',$data);
$data=$this->db->query('select * from images where img_name="$imgname"');
foreach ($data->result() as $row)
{
print_r($row->img_data);
echo "<img src='data:image/jpg;charset=utf8;base64, ";
echo "base64_encode($row->img_data)";
echo "height=100 width=100>";
}
}
}
}
?>
你很親密。 你的base64_encode
不能在這樣的字符串插值中執行。 您根本無法在字符串插值中運行函數。 這應該有效。
<?php
class file_upload extends CI_Controller
{
public function index()
{
echo " <head>
<title>Upload Image To Database</title>
</head>
<body>
<!-- (A) HTML FILE UPLOAD FORM -->
<form method='post' enctype='multipart/form-data'>
<input type='file' name='upload' accept='.png,.gif,.jpg,.webp' required/>
<input type='submit' name='submit' value='Upload Image'/>
</form>";
if (isset($_FILES['upload']))
{
$imgname=$_FILES["upload"]["name"];
$data["img_name"]=$_FILES['upload']['name'];
$data["img_data"]=file_get_contents($_FILES["upload"]["tmp_name"]);
$this->db->insert('images',$data);
$data=$this->db->query('select * from images where img_name="$imgname"');
foreach ($data->result() as $row)
{
print_r($row->img_data);
echo "<img src='data:image/jpg;charset=utf8;base64, ";
echo base64_encode($row->img_data);
echo "'height=100 width=100>";
}
}
}
}
?>
此外,由於您已經對jpg
進行了硬編碼,因此如果您上傳了除此之外的任何內容,它可能無法正確顯示在圖像標簽中。
總的來說,最好將圖像存儲在某個目錄中,然后在數據庫中存儲有關圖像的信息。 類型、寬度、高度、位置等
此外,由於您使用的是 CI,因此我建議您查看其處理文件的便捷功能。 Specifically https://www.codeigniter.com/user_guide/incoming/incomingrequest.html?highlight=file%20upload#uploaded-files and https://www.codeigniter.com/user_guide/helpers/filesystem_helper.html
快樂編碼!
一些引號(“”/'')問題所以使用下面的代碼
<?php
class file_upload extends CI_Controller
{
public function index()
{
echo " <head>
<title>Upload Image To Database</title>
</head>
<body>
<!-- (A) HTML FILE UPLOAD FORM -->
<form method='post' enctype='multipart/form-data'>
<input type='file' name='upload' accept='.png,.gif,.jpg,.webp' required/>
<input type='submit' name='submit' value='Upload Image'/>
</form>";
if (isset($_FILES['upload']))
{
$data["img"]=addslashes(file_get_contents($_FILES["upload"]["tmp_name"]));
$this->db->insert('img',$data);
$data=$this->db->query("select * from img");
foreach ($data->result_array() as $row)
{
echo $row['id'];
?>
<img src="data:image/jpg;charset=utf8;base64, <?php echo base64_encode($row['img']); ?> " height=200 width=200> </img>
<?php
}
}
}
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.