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

dsw*_*w88 1 php codeigniter

我正在使用CodeIgniter框架编写应用程序,我正在利用CI文件上传类从Web表单上传图像文件到服务器.

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

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

我已经在应用程序中分配了一个唯一的文件名,所以我只需要弄清楚如何在每次保存文件时让File Uploading类接受备用文件名.任何人都知道是否可以这样做?

Ben*_*rne 5

您可以设置配置变量以实现您提出的所有要求.可以在手册页中找到以下配置变量

为上传的文件设置文件名

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);
Run Code Online (Sandbox Code Playgroud)


小智 5

如果要更改上传文件名,请尝试以下操作:

$newFileName = $_FILES['userfile']['name'];
// You can setfilename in config for upload
$config['file_name'] = $new_name;
Run Code Online (Sandbox Code Playgroud)