上传时重命名文件名
Rename File Name During Uploading
$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 张图像要上传并正确上传,并将图像名称保存到数据库中。问题是。
我要上传我的图片名称,并将图片名称存入数据库
Like : S$uniqId, F$uniqId, M$uniqId, LG$uniqId
您应该能够在加载库之后和上传文件之前指定 'file_name'..
//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.
}
到目前为止我还没有在我的任何项目中使用它,但它应该会产生预期的结果。请告诉我,如果它不起作用..
使用的名称是 $_FILES['image1']['name']
中存在的任何名称。如果你想改变它,你可以在上传表单中改变它。如果这是不可取的,你必须调用 rename()
然后更新
$S_image = $_FILES['image1']['name'];
$F_image = $_FILES['image2']['name'];
$M_image = $_FILES['image3']['name'];
$LG_image = $_FILES['image4']['name'];
在存储到数据库之前,将文件重命名为任何内容。
我想你可以通过每次调用do_upload方法时初始化配置来解决重命名问题。
$config['file_name'] = YOUR_OWN_NAME
然后在你的 for 循环中初始化,就在你的 do_upload 调用
之前
$this->upload->initialize($config);
在$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();
}
}
$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 张图像要上传并正确上传,并将图像名称保存到数据库中。问题是。
我要上传我的图片名称,并将图片名称存入数据库
Like : S$uniqId, F$uniqId, M$uniqId, LG$uniqId
您应该能够在加载库之后和上传文件之前指定 'file_name'..
//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.
}
到目前为止我还没有在我的任何项目中使用它,但它应该会产生预期的结果。请告诉我,如果它不起作用..
使用的名称是 $_FILES['image1']['name']
中存在的任何名称。如果你想改变它,你可以在上传表单中改变它。如果这是不可取的,你必须调用 rename()
然后更新
$S_image = $_FILES['image1']['name'];
$F_image = $_FILES['image2']['name'];
$M_image = $_FILES['image3']['name'];
$LG_image = $_FILES['image4']['name'];
在存储到数据库之前,将文件重命名为任何内容。
我想你可以通过每次调用do_upload方法时初始化配置来解决重命名问题。
$config['file_name'] = YOUR_OWN_NAME
然后在你的 for 循环中初始化,就在你的 do_upload 调用
之前$this->upload->initialize($config);
在$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();
}
}