PHP:如何获取文件名称&在Codeigniter中扩展上传的文件?

时间:2016-10-13 11:16:56

标签: php codeigniter

我需要在上传时只存储文件名+文件扩展名,并重命名为我的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 

5 个答案:

答案 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];