我在php codeigniter上显示上传的图片时出现问题:
将图像上传到数据库后,当我尝试在网站上显示图像时,会破坏多张图像。我做错了什么?
这是我的控制器
public function prosesupload(){
$config['upload_path'] = './gambar/';
$config['allowed_types'] = 'gif|jpg|png|pdf|docx';
$config['max_size'] = 10000;
$config['max_width'] = 5000;
$config['max_height'] = 5000;
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload())
{
echo 'fail to upload';
}
else
{
$img = $this->upload->data();
$gambar = $img['file_name'];
$data = array(
'certificates_img' => $gambar,
);
$this->db->insert('certificate', $data);
redirect('certificate/index');
}
}
这是我的模特
var $table="certificate";
public function getCertificate($table)
{
$data = $this->db->get($table);
return $data->result_array();
}
这是我的观点
<div class="content" >
<br>
<center>
<table>
<?php
foreach($certificate as $key){
?>
<tr>
<div class="box" id="" style=";">
<td><img src="<?php echo base_url('/gambar/'.$key-
>certificates_img) ?> " width="80%" height="800px" ><br><br>
</td>
</div>
<?php } ?></tr>
</table>
<p align="center"><?php echo $links; ?>
</center>
答案 0 :(得分:0)
您正在使用result_array()
返回getCertificate()
,因此您可以通过$key['certificates_img']
访问其值,如果您想要将其作为对象访问,那么您现在必须返回result()
。
使用您的方法可以执行此操作:
视图的控制器方法:
function certificateV()
{
$data['certificate'] = $this->db->get('certificate')->result_array();
$this->load->view('certificateView', $data);
}
certificateView:
<div class="content">
<br>
<center>
<table>
<?php
foreach ($certificate as $key) {
?>
<tr>
<div class="box" id="" style=";">
<td><img src="<?php echo base_url('/gambar/' . $key['certificates_img']); ?> " width="80%" height="800px" ><br><br></td>
</div>
</tr>
<?php } ?>
</table>
<p align="center"><?php echo $links; ?>
</center>
注意:稍微清理了一下代码,结束循环</tr>
超出了foreach的范围。