2010-05-07 99 views
1

无论我做什么,我都无法上传图片。下面是在我的模型代码: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新手,它真的让我陷入死胡同。除此之外,我希望能够将文件的路径写入数据库,但我无法弄清楚,所以如果有人有答案,或者甚至指向正确的方向,我将非常感激。 由于

EDIT -----------

我被上传的图像是太高/宽。但是,如果有人能够指示我如何将文件路径写入数据库,那就太棒了!

+0

'$ config ['max_size'] ='100';'表示最大文件大小为100字节,这是你想要的吗?你还有什么错误? – oedo 2010-05-07 13:07:34

+0

唉我没有得到任何错误,它不是文件大小。 – Drew 2010-05-07 13:13:42

+0

我当时是个白痴。高度和宽度太大了! – Drew 2010-05-07 13:16:07

回答

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

可以降低高度和图像的宽度要设置1024和768

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

;其次,我建议,你可以存储只是imagename说“abc.jpg的”,而不是图像的整个路径。您不需要将整个路径存储在数据库中,因为您可以通过在上传图像时设置路径时获得此路径。