我知道,这个问题有很多解决方案,但不幸的是我无法解决,这是我的上传代码:
public static function upload(&$file, $destinationDir = "", $destinationName = "", $secure = true)
{
$ret = false;
if (isset($file['tmp_name']) && isset($file['name']))
{
if ($destinationName == '')
{
$destinationName = $file['name'];
}
$destinationFile = $destinationDir . '/' . $destinationName;
if (move_uploaded_file($file['tmp_name'], $destinationFile))
{
if ($secure)
{
chmod($destinationFile, 0644); // without execution permissions if it is possible
}
$ret = true;
}
}
return $ret;
}
1:如何在上传到服务器时重命名文件?
2:如果文件名存在,那么如何自动重命名?
提前致谢
答案 0 :(得分:1)
在这种情况下使用 file_exists :
public static function upload(&$file, $destinationDir = "", $destinationName = "", $secure = true){
$ret = false;
if(isset($file['tmp_name']) && isset($file['name'])){
if ($destinationName == ''){
$destinationName = md5($file['name']);
}
$destinationFile = $destinationDir.'/'.$destinationName;
if(file_exists($destinationFile)){
// Change the destination file name if it exists
$destinationFile = $destinationDir.'/'.md5($destinationName.rand());
}
if (move_uploaded_file($file['tmp_name'], $destinationFile)){
if($secure){
chmod($destinationFile, 0644); // without execution permissions if it is possible
}
$ret = true;
}
}
注意:强>
move_uploaded_file - 将上传的文件移动到新位置
结构如下
bool move_uploaded_file ( string $filename , string $destination )
在$destination
参数中,您可以指定新上传文件的名称。将文件命名为唯一的文件。无论如何!所以不要担心这个