Загрузка изображения Codeigniter не работает - PullRequest
1 голос
/ 07 мая 2010

Я не могу загрузить свои изображения, что бы я ни делал. Ниже приведен код, который находится в моей модели:

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 ]

2 голосов
/ 07 мая 2010

Сделал что-то похожее с проектом - в основном вам просто нужно превратить путь в строку и записать его в вашу базу данных ...

$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 голос
/ 31 марта 2011

Вы можете уменьшить высоту и ширину изображения, которое вы устанавливаете, 1024 и 768.

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

и, во-вторых, я могу предложить, вы можете хранить только имя изображения, например, «abc.jpg», а не весь путь изображения. Вам не нужно хранить весь путь в базе данных, потому что вы можете получить этот путь, выполнив то же самое, когда вы устанавливали путь при загрузке изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...