2017-04-26 593 views
1

我知道move_uploaded_file()设置上传文件的名称并设置目的地。我有这样的:PHP move_uploaded_file重命名文件

$sourcePath = $_FILES['file']['tmp_name']; // Storing source path of the file in a variable 
$targetPath = $_SERVER['DOCUMENT_ROOT'] . '/img/profiles/'.$_FILES['file']['name']; // Target path where file is to be stored 
move_uploaded_file($sourcePath,$targetPath) ; // Moving Uploaded file` 

我已经试过爆炸$_FILES['file']['tmp_name'],但我没有得到改变我的上传文件的名字我的POST变量$newfile=$_POST["something"];

预先感谢您

+0

没有得到你的问题正确。你想使用张贴变量作为文件名? '$ targetPath = $ _SERVER ['DOCUMENT_ROOT']。 “/ IMG /型材/'.$_ POST [ “东西”];'? – bansi

+0

是的,完全......谢谢,但问题是文件的扩展。现在我明白了。我做了'$ ext = explode('。',$ _FILES ['file'] ['name']);' –

回答

1

我使用

//文件名

$file_name = $_FILES["file"]["name"]; 
$file_name = preg_replace('/\\.[^.\\s]{3,4}$/', '', $file_name); 

//获取ecxtension

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

//改变名称

$imagename = $file_name . time() . "." . $ext; 
+0

非常感谢! –

1

将整个使用$ targetpath变量中的文件名上传路径。 在你的代码

$sourcePath = $_FILES['file']['tmp_name']; 
$newfile=$_POST["something"]; //any name sample.jpg 
$targetPath = $_SERVER['DOCUMENT_ROOT'] . '/img/profiles/'.$newfile; 
move_uploaded_file($sourcePath,$targetPath) ; 

现在上传的文件名是sample.jpg 我认为你这会有所帮助。