загрузка изображений с помощью codeigniter - PullRequest
1 голос
/ 20 января 2012

Я пытаюсь загрузить изображение и сохранить полный путь к изображениям в моей таблице изображений, но я не знаю, как получить полный путь к нему из массива $this->upload->data(). Это мой код ниже.

//assigns the user's sessioned id to the variable $user_id

$user_id = $this->session->userdata('user_id');

//sets rules for the image that is being uploaded
$config['overwrite'] = FALSE; //does not overwrite any image adds +1 instead
$config['encrypt_name'] = FALSE; //encrypts the images name
$config['remove_spaces'] = TRUE; //removes spaces from the images name
$config['file_name'] = $user_id."_0.jpg";/*gives the image a new name combination of the user's id and a number*/
$config['upload_path'] = './uploads'; // the uploaded images path
$config['allowed_types'] = 'jpg|png';/*types of image extentions allowed to be uploaded*/
$config['max_size'] = '2048';// maximum file size that can be uploaded (2MB)

if ( ! is_dir($config['upload_path']) ) /* this checks to see if the file path is wrong or does not exist.*/
    die("THE UPLOAD DIRECTORY DOES NOT EXIST"); // error for invalid file path

$this->load->library('upload',$config); /* this loads codeigniters file upload library*/
//this checks for errors incase the image upload breaks a set rule.
if (! $this->upload->do_upload() ) {
    echo "UPLOAD ERROR ! ".$this->upload->display_errors(); //image error
}
else {
    // success message to show that the image was successfuly uploaded.
    echo "THE IMAGE HAS BEEN UPLOADED : "; var_dump($this->upload->data() );
}

Ответы [ 2 ]

2 голосов
/ 21 января 2012

Все, что мне нужно было сделать, это сохранить массив $this->upload->data(); в переменной, например,

$image_info = $this->upload->data();

, а из переменной $image_info я могу получить доступ к свойствам изображений следующим образом.

$image_info['full_path'];
$image_info['file_name'];
0 голосов
/ 20 января 2012

Вы должны увидеть в дампе для $this->upload->data() следующий массив:

Array
(
    [file_name]    => mypic.jpg
    [file_type]    => image/jpeg
    [file_path]    => /path/to/your/upload/
    [full_path]    => /path/to/your/upload/jpg.jpg
    [raw_name]     => mypic
    [orig_name]    => mypic.jpg
    [client_name]  => mypic.jpg
    [file_ext]     => .jpg
    [file_size]    => 22.2
    [is_image]     => 1
    [image_width]  => 800
    [image_height] => 600
    [image_type]   => jpeg
    [image_size_str] => width="800" height="200"
)

Так что вы можете просто использовать что-то вроде:

if ($uploaded_image = $this->upload->do_upload() ){
    // success message to show that the image was successfuly uploaded.
    echo "THE IMAGE HAS BEEN UPLOADED : ";
    $full_path = $uploaded_image['full_path'];
} else {
    echo "UPLOAD ERROR ! ".$this->upload->display_errors();//image error
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...