2010-05-07 2 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

+0

Увы, я не получаю ошибки, и это не размер файла. – Drew

+0

Я был идиотом. высота и ширина были слишком большими! – Drew

ответ

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», а не весь путь изображения. Вам не нужно хранить весь путь в базе данных, потому что вы можете получить этот путь, выполнив то же самое, когда вы устанавливаете путь при загрузке изображения.

Смежные вопросы