0

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

这是代码:

 $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); 
4

1 回答 1

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);
于 2013-11-08T21:37:33.280 回答