我想在上传过程中重命名所有文件。我一次上传3个文件。我的前端代码是
<form>
<input type="file" class="form-control" name="photo_1">
<input type="file" class="form-control" name="pan_1">
<input type="file" class="form-control" name="add_1">
</form>
我在控制器中的代码如下
function upload(){
$this->upload_file('photo_1');
$this->upload_file('pan_1');
$this->upload_file('add_1');
}
function upload_file($field_name)
{
//$ext = substr( strrchr($_FILES[$field_name]['name'], '.'), 1);
//$new_name = $types.'_'.$numb.'_dev_.'.$ext;
$config['file_name'] = $_FILES[$field_name]['name'];
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'jpeg|jpg|png';
// $config['max_size'] = 100;
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload($field_name))
{
return array('error' => $this->upload->display_errors());
}
else
{
$data = array('upload_data' => $this->upload->data());
}
}
但是我&#39;使用增量为每个文件获取相同的名称。 喜欢photo_1,photo_11,photo_12 。我想要像 photo_sometext_1
这样的文件名任何帮助将不胜感激
答案 0 :(得分:0)
问题出在$config['file_name'] = $_FILES[$field_name]['name'];
。您需要传递所需的文件名。
OR
好方法是为每个文件创建encrypt_name
。这样,codeigniter将为上传的每个文件创建随机名称。
请参阅此https://www.codeigniter.com/userguide3/libraries/file_uploading.html#preferences文档,了解可用选项。
答案 1 :(得分:0)
$config['file_name'] = "sometext".$_FILES[$field_name]['name'].;
如果要完全重命名,则需要捕获扩展并将其附加到您要提供的名称。
看起来像
$config['file_name'] =" some text".$extension
$extension
是您的文件扩展名。
答案 2 :(得分:0)
我在
下方的控制器中缺少跟随线$this->load->library('upload', $config);
$this->upload->initialize($config);