您好,我使用以下代码将文件上传到我的服务器上并将文件名写入数据库。我的问题是,当上传文件时,我如何获得要更改的文件的名称?现在我面临一个问题,如果文件名在单词之间有空格,如果它不是整个单词,文件没有正确上传。
这是代码:
$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);
您需要解析文件名,删除所有不需要的字符。最简单的方法是使用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);