2015-10-22 77 views
0

我想问,如果我有一个网页表单,人们用它来上传东西到我的分贝。如果两个人上传同名的相同文件,则在uploads目录中,其中一个将替换另一个。所以我需要将上传到db的每个文件的名称更改为:filename201405051200.pdf或jpg或... 这里我们有每个示例image1的文件名,数字是上传的日期和时间。所以任何帮助。我使用的显示为下面的链接的答案代码:编码上传的文件名称

Uploading blob files/images into Mysql

我用这个代码:

$path = "../uploads/".$_FILES['file']['name']; 
if(move_uploaded_file($_FILES["file"]["tmp_name"], $path.'_'.time())){ 
... 
} 

但现在的文件格式类型由及时更换。所以如果是img.jpg现在是img85890338jpg并不会打开正确

+1

什么是不工作?请向我们展示您已经编写的代码。 –

+0

查看链接。首先,文件上传,但当我想下载我的网站,它被下载,但不会正常打开。无论如何,我的问题是如何在问题中添加名称来保存文件,请参阅链接以查看使用的代码。 – droidnation

+0

您使用rand(111111,999999)函数与您的文件名设置唯一的文件名。 –

回答

1

您可以使用pathinfo提取文件扩展名:

$fileExt = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION); 

之后,你可以创建新的文件名:

if(move_uploaded_file($_FILES["file"]["tmp_name"], $path.'_'.time().date().'.'.$fileExt)) { 

} 
+0

真棒,谢谢,但我更喜欢现在使用日期和time().data()。'。'。$ ext)和$ ext = pathinfo($ path,PATHINFO_EXTENSION)时间:move_uploaded_file($ _ FILES [“file”] [“tmp_name”],$ path。 ; – droidnation