使用move_uploaded_file在放置上传/文件夹之前重命名文件

时间:2018-04-03 19:50:01

标签: php

我已经看到类似的问题,但似乎没有人遇到我的问题。

我已经设置了一个进程来检查MySQL表中是否已存在文件名,如果已存在,则会在文件名和扩展名之间放置一个时间戳(EG Test.PDF变为{ {1}}如果它是重复的),从而否定任何数据库冲突。

我的问题是,在数据库正确更新的同时,重复文件没有上传,名称中包含时间戳。相反,它使用重复的名称,只是覆盖原始并创建一个鬼"文件名"在数据库中列出。

我已经看到您可以使用Test-19:25:36重命名服务器内存中的文件,然后再上传,但我已经尝试了多种方式,无法将其转换为在尝试将文件写入" / uploads"之前,将文件重命名为内存中的文件。夹。这是上传代码:

move_uploaded_file

有关如何在将文件写入uploads文件夹之前重命名文件的任何建议吗?

2 个答案:

答案 0 :(得分:0)

我建议不要使用.prop("date-test", "tested):来分隔您的时间戳,因为这会导致文件名限制问题。尝试做类似的事情:

.attr()

答案 1 :(得分:0)

move_uploaded_file($_FILES['file1']['tmp_name'], $moveTargetVar);替换为move_uploaded_file($_FILES['file1']['tmp_name'],$path . $filename);

解决

已弃用$moveTargetVar = "uploads/" . $filename;