2016-06-08 6 views
0
$uniqId = $this->input->post('U_I_T_Roll_No'); 
$config['upload_path'] = "./uploads/ProfileImages/"; 
     $config['allowed_types'] = 'gif|jpg|png|bmp|jpeg'; 
     $config['max_size'] = '1024'; 
     $config['max_width'] = '1000'; 
     $config['max_height'] = '1000'; 
     /* Load the upload library */ 
     $this->load->library('upload', $config); 
     /* Create the config for image library */ 
     /* (pretty self-explanatory) */ 
     $configThumb = array(); 
     $configThumb['image_library'] = 'gd2'; 
     $configThumb['source_image'] = ''; 
     $configThumb['create_thumb'] = FALSE; 
     $configThumb['maintain_ratio'] = TRUE; 
     /* Set the height and width or thumbs */ 
     /* Do not worry - CI is pretty smart in resizing */ 
     /* It will create the largest thumb that can fit in those dimensions */ 
     /* Thumbs will be saved in same upload dir but with a _thumb suffix */ 
     /* e.g. 'image.jpg' thumb would be called 'image_thumb.jpg' */ 
     $configThumb['width'] = 400; 
     $configThumb['height'] = 400; 
     /* Load the image library */ 
     $this->load->library('image_lib'); 

    /* We have 5 files to upload 
    * If you want more - change the 6 below as needed 
    */ 
    for($i = 1; $i < 5; $i++) { 
    /* Handle the file upload */ 
    $upload = $this->upload->do_upload('image'.$i); 
    /* File failed to upload - continue */ 
    if($upload === FALSE) continue; 
    /* Get the data about the file */ 
    $data = $this->upload->data(); 

    $uploadedFiles[$i] = $data; 
    /* If the file is an image - create a thumbnail */ 
    if($data['is_image'] == 1) { 
     $configThumb['source_image'] = $data['full_path']; 
     $this->image_lib->initialize($configThumb); 
     $this->image_lib->resize(); 
    } 
    } 
    $S_image = $_FILES['image1']['name']; 
    $F_image = $_FILES['image2']['name']; 
    $M_image = $_FILES['image3']['name']; 
    $LG_image = $_FILES['image4']['name']; 
    $data5=array (
    'Uniq_Id' => $this->input->post('U_I_T_Roll_No'), 

    'S_image' => $S_image, 
    'F_image' => $F_image, 
    'M_image' => $M_image, 
    'LG_unique1' => $LG_image, 
    ); 


    $this->InsertData->studentimageupload($data5); 

Выше код Работает хорошо. У меня есть 4 изображения для загрузки и загрузки правильно и имя сохранения изображений в базу данных. проблема в том, что.Переименование имени файла при загрузке

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

как: S $ uniqId, F $ uniqId, M $ uniqId, LG $ uniqId

ответ

0

ли что-то подобное раньше $this->load->library('upload', $config);

Изменения $this->load->library('upload', $config); к $this->load->library('upload'); и смотрите ниже

for($i = 1; $i < 5; $i++) { 
    $img=$_FILES['image'.$i]['name']; 
    $new_name=NEW_NAME; 
    $ext = strtolower(substr($img, strpos($img,'.'), strlen($img)-1)); 
    $file_name=$new_name.$ext; 
    $config['file_name'] = $file_name; 
$this->upload->initialize($config); 
/* Handle the file upload */ 
$upload = $this->upload->do_upload('image'.$i); 
/* File failed to upload - continue */ 
if($upload === FALSE) continue; 
/* Get the data about the file */ 
$data = $this->upload->data(); 

$uploadedFiles[$i] = $data; 
/* If the file is an image - create a thumbnail */ 
if($data['is_image'] == 1) { 
    $configThumb['source_image'] = $data['full_path']; 
    $this->image_lib->initialize($configThumb); 
    $this->image_lib->resize(); 
    } 
    } 
+0

На самом деле у меня есть 4 изображения для загрузки. вы можете поместить его в массив .. и как назвать все пять изображений .. вы написали код только для одной загрузки изображения. я должен написать e раз .. –

+0

сделать то же самое для всех 5 или сделать функцию. – Vinie

+0

См. Обновленный ответ – Vinie

0

Вы должны быть в состоянии указать 'имя_файла' после загрузки библиотеки & прямо перед загрузкой файл ..

//make your config array. 
$this->load->library('upload', $config); 

for($i=1; $i < 5; $i++) 
{ 
    $this->upload->set_filename($path, $filename); 
    $upload = $this->upload->do_upload('image'. $i); 
    //do whatever you want to do with the file. 
} 

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

+0

вы можете отредактировать код, пожалуйста .. –

+0

Я обновил свой ответ с образцом кода .. попробуйте это. –

0

Используемое имя - это то, что присутствует в $_FILES['image1']['name']. Если вы хотите изменить его, вы можете изменить его в самой форме загрузки. Если это не желательно, вы должны вызвать rename(), а затем обновить

$S_image = $_FILES['image1']['name']; 
$F_image = $_FILES['image2']['name']; 
$M_image = $_FILES['image3']['name']; 
$LG_image = $_FILES['image4']['name']; 

к тому, что вы переименовали файлы, перед сохранением в базе данных.

0

Я думаю, что вы можете решить проблему переименования, инициализируя конфигурацию каждый раз, когда вы вызываете метод do_upload.

$config['file_name'] = YOUR_OWN_NAME

, а затем Initialize в вашем цикл, как раз перед вашим do_upload вызова

$this->upload->initialize($config);

+0

не могли бы вы отредактировать код и показать мне, что нужно делать. есть цикл for, я не могу понять, как переименовать более одного изображения. –