2010-05-07 164 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的」,而不是圖像的整個路徑。您不需要將整個路徑存儲在數據庫中,因爲您可以通過在上傳圖像時設置路徑時獲得此路徑。