【问题标题】:Code Igniter File Upload Class - How to change saved filename?Codeigniter 文件上传类 - 如何更改保存的文件名?
【发布时间】:2011-11-27 00:58:55
【问题描述】:

我正在使用 CodeIgniter 框架编写一个应用程序,并且我正在利用 CI File Uploading 类将图像文件从 Web 表单上传到服务器。

文件上传正常,但我希望能够在服务器上以不同的唯一名称保存它们。我想告诉 File Upload 类使用每个文件的不同的唯一文件名将文件保存到服务器,但我无法弄清楚如何做到这一点。

我已经检查了该类的 CI 文档,我发现你可以使用该类来加密文件名,但我不相信这会给我一个唯一的文件名,它只是加密它.

我已经在应用程序中拥有分配唯一文件名的功能,因此我只需要弄清楚如何让文件上传类在每次保存文件时接受该备用文件名。有谁知道是否可以这样做?

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    您可以设置配置变量来实现您所要求的两件事。以下配置变量可以在manual page中找到

    为您上传的文件设置文件名

    file_name 无 所需文件名

    如果设置 CodeIgniter 会将上传的文件重命名为此名称。这 文件名中提供的扩展名也必须是允许的文件类型。

    确保文件名唯一

    覆盖 FALSE TRUE/FALSE(布尔值)

    如果设置为true,如果文件与您所在的文件同名 上传存在,它将被覆盖。如果设置为 false,则为一个数字 如果存在另一个同名的文件名,则将附加到文件名中。

    您可以按如下方式设置这些配置变量

    $config['file_name'] = 'myfile';
    $config['overwrite'] = false;
    
    $this->load->library('upload', $config);
    
    // Alternately you can set preferences by calling the initialize function. Useful if you auto-load the class:
    $this->upload->initialize($config);
    

    【讨论】:

      【解决方案2】:

      如果你想更改上传文件名,试试这个:

      $newFileName = $_FILES['userfile']['name'];
      // You can setfilename in config for upload
      $config['file_name'] = $new_name;
      

      【讨论】:

        【解决方案3】:

        你可以设置你的文件名:

        $newFileName = $_FILES['some_field']['name']; $fileExt = array_pop(explode(".", $newFileName)); $filename = md5(time()).".".$fileExt; //在配置文件中设置文件名以进行上传 $config['file_name'] = $filename;

        希望对你有帮助

        【讨论】:

        • 我刚刚检查了 Upload 类,从第 218 行开始,如果没有给出,它使用上传的文件扩展名。因此,您无需在代码中使用 array_pop 位。
        【解决方案4】:

        如果您想更改上传文件名

        $fname = "Set File Name What You Want";
        


        $config['file_name'] = $fname;
        $config['overwrite'] = false;
        

        【讨论】:

          猜你喜欢
          • 2018-02-22
          • 1970-01-01
          • 2012-05-13
          • 2013-09-03
          • 2017-03-12
          • 2013-07-10
          • 2020-03-31
          • 2014-08-09
          • 2016-05-28
          相关资源
          最近更新 更多