Codeigniter图像上传无法正常工作

时间:2010-05-07 13:04:11

标签: php codeigniter

无论我做什么,我都无法上传我的图像。下面是我模型中的代码:

function do_upload()
{
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '100';
    $config['max_width']  = '1024';
    $config['max_height']  = '768';

    $this->load->library('upload', $config);

    if ( ! $this->upload->do_upload())
    {
        $error = array('error' => $this->upload->display_errors());

        return $error;
    }   
    else
    {
        $data = array('upload_data' => $this->upload->data());

        return $data;
    }

以下是我的控制器中的代码:

function do_upload()
{
    $this->Upload_model->do_upload();

}

这是我的表格:

<html>
<head>
<title>Upload Form</title>
</head>
<body>



<?php echo form_open_multipart('upload/do_upload');?>
<?php if(isset($buttons)) : foreach($buttons as $row) : ?>
<h2><?php echo $row->name; ?></h2>
<input type="file" name="userfile" size="20" />
<input type="hidden" name="oldfile" value="<?php echo $row->image_url; ?>" />
<input type="hidden" name="id" value="<?php echo $row->id; ?>" />
<br /><br />
<label>Url: </label><input type="text" name="url" value="<?php echo $row->url; ?>" /><br /><br />
<input type="submit" value="submit" />

</form>

<?php endforeach; ?>
<?php endif; ?>

</body>
</html>

有人能告诉我,我做错了什么吗?我是codeigniter的一个完全新手,它真的让我陷入了死胡同。除此之外,我希望能够将文件的路径写入我的数据库,但我无法弄清楚,如果有人有答案,或者甚至指出我正确的方向,我将非常感激。 感谢

编辑-----------

我上传的图片太高/太宽了。但如果有人能指出我如何将文件路径写入数据库的方向,那就太棒了!

2 个答案:

答案 0 :(得分:2)

与项目做了类似的事情 - 基本上你只需要将路径转换为字符串并将其写入数据库......

$fileup = $this->upload->data();
    $myfilepath = $fileup['file_name'];
    $databack = array(
        'your_field'=> 'http://www.yourserver.com/location/'.$myfilepath.'',
    ); 
    $DB->where('your_id_field', $id_value);
    $DB->update('your_table', $databack);  

最棘手的一点就是将它绑定到您的数据库!

答案 1 :(得分:1)

您可以减小设置1024和768的图像的高度和宽度。

$config['max_width']  = '800';
$config['max_height']  = '600';

其次,我可能会建议,您只能存储图像名称'abc.jpg',而不是图像的整个路径。您不需要将整个路径存储在数据库中,因为在上载图像时设置路径时可以通过执行此路径来获取此路径。