从输入表单上传更改文件名

时间:2013-11-08 21:19:01

标签: php

您好我使用以下代码在我的服务器上上传文件并在数据库中写入文件名。我的问题是如何在文件上传时更改要更改的文件的名称?现在我面临一个问题,如果文件名之间没有空格,如果它不是一个完整的单词文件没有正确上传。

这是代码:

 $target = "../images/"; 
 $target = $target . basename( $_FILES['photo']['name']); 
 $filename = $_FILES['photo']['name'];
 if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))

 //resize function 
 createThumbnail($filename); 

1 个答案:

答案 0 :(得分:0)

您需要解析文件名,删除所有不需要的字符。最简单的方法是使用preg_replace禁用字符。这是一个例子:

// List of forbidden chars (\ and / need to be escaped with \)
$forbiddenChars = "\/\\?%*:|\"<>. ";

//Characters not allowed are replaced by this var
$replaceStr = "_";

$filename = preg_replace("/[$forbiddenChars]/", $replaceStr, $_FILES['photo']['name']);

//DEBUG: Test if everything is ok (should be deleted in production)
var_dump($filename);