代码点火器文件上传类-如何更改保存的文件名


Code Igniter File Upload Class - How to change saved filename?

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

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

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

我已经在应用程序中分配了一个唯一的文件名的功能,所以我只需要弄清楚如何让文件上传类在每次保存文件时接受那个备用文件名。有人知道这是否可行吗?

您可以设置配置变量来实现您所要求的这两件事。以下配置变量可以在手册页

中找到

设置上传文件的文件名

file_name无期望的文件名

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

确保文件名是唯一的

overwrite FALSE TRUE/FALSE (boolean)

如果设置为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);

如果要更改上传文件名,请尝试:

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

你可以设置你的文件名:

<>之前$newFileName = $_FILES['some_field']['name'];$fileExt = array_pop(explosion (".", $newFileName));$filename = md5(time()).".".$fileExt;//在config中设置上传文件名$config['file_name'] = $filename;之前

希望有所帮助

如果您想更改上传文件名:

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


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