【发布时间】:2015-11-04 20:10:26
【问题描述】:
这是我上传的php:
if (trim($_FILES['path_filename']['name']))
{
if (File::upload($_FILES['path_filename'], dirname(realpath(__FILE__)) . '/../tests'))
{
$test->setPathFilename('../tests/' . $_FILES['path_filename']['name']);
}
}
}
else
{
if ($aux)
{
$aux = str_replace("\\", "/", $aux);
$aux = preg_replace("/[\/]+/", "/", $aux);
$test->setPathFilename($aux);
}
}
$_POST["upload_file"] = $test->getPathFilename();
上面的代码运行良好,我的意思是,上传到服务器正在运行,并且获取 路径文件名 并插入到 sql 表中也可以。
示例:当我上传文件例如: ABC.jpg 时,它将上传到 tests 文件夹,并且路径文件名是 (( ../tests/ABC.jpg )),它会插入到 sql 表中。
问题出在这里:
我使用以下代码更改了全局函数以自动重命名文件:
以前:
$destinationName = $file['name'];
我改成:
$ext = pathinfo($file["name"], PATHINFO_EXTENSION);
$destinationName = sha1_file($file["tmp_name"]).time().".".$ext;
现在,上传文件到tests文件夹后,会自动重命名,但是路径文件名还是一样的,tests文件夹里面是ABC.jpg文件,没有重命名。
如何获得重命名的路径文件名???
非常感谢您在这个问题上的帮助。
提前致谢
【问题讨论】:
-
除非你展示不同的代码行是如何相关的,否则这是无法回答的。显而易见的解决方案是先重命名,然后移动并存储在数据库中......
标签: php file-upload filenames filepath