我需要在上传时只存储文件名+文件扩展名,并重命名为我的databse.my问题是无法获得扩展名。
$new_file_name=date("mdY")."_".time();
$config['upload_path'] = './assets/images/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = 2048;
$config['max_width'] = 1024;
$config['max_height'] = 768;
$config['file_name'] = $new_file_name;
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload('uploadFile'))
{
$error = array('error' => $this->upload->display_errors());
var_dump($error);
}
else
{
$data = array('upload_data' => $this->upload->data());
var_dump($data);
echo $config['file_name'] . $config['file_ext'];
}
我的下一个问题加载帮助表单?或者需要加载表单来使用library form_validation?
$this->load->helper(array('form')); for ?
$this->load->library('form_validation'); this for validation rule
答案 0 :(得分:2)
上传文件后,您可以通过以下方式获取其财产:
$saved_file_name = $this->upload->data('file_name');
// will give you the filename along with the extension
如果您想在上传前获取文件扩展名,请使用core php:
$file_ext = pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION);
或使其干净
$filename= $_FILES["file"]["name"];
$file_ext = pathinfo($filename,PATHINFO_EXTENSION);
答案 1 :(得分:0)
只需将以下代码用作图片名称,并在帖子后加上扩展名即可解决问题,
$config['file_name'].$this->upload->data('file_ext')
答案 2 :(得分:0)
我遇到了同样的问题,我只是想通了。
我试图用这个名称:$ this-> upload-> data('file_name'); 但是它总是空的,我发现您需要设置一些东西才能访问data()数组。
代码成功上传文件后,请输入以下内容:$data = array('upload_data' => $this->upload->data());
之后,所有的data()索引都将可访问,包括'file_name'。文档中包含所有索引的列表:https://codeigniter.com/user_guide/libraries/file_uploading.html#preferences
ps:我知道这篇文章已经过去两年了,但是如果有人也坚持这样做的话,也许有人会觉得这很有帮助。
答案 3 :(得分:0)
我知道这为时已晚,但我仍在给出答案。
如果要获取图像扩展名,则将pathinfo函数与PATHINFO_EXTENSION参数一起使用。 例如。
$imageExtention = pathinfo($_FILES["image"]["name"], PATHINFO_EXTENSION);
echo imageExtention;
答案 4 :(得分:-4)
您可以使用此代码获取文件名
$file_name = $data['file_name'];
echo $file_name;
和文件扩展名
$ext = implode('.',$file_name);
echo $ext[1];