【发布时间】:2013-07-24 17:54:07
【问题描述】:
如果文件已经存在,需要复制然后重命名该文件的副本
$pastaTemp = $_FILES['imagem_principal']['tmp_name'];
$pastaUpload = $_SERVER['DOCUMENT_ROOT']."/casaunica/imagens/acabamentos/";
$arquivo = $pastaUpload . $_FILES['imagem_principal']['name']; //filename.jpg
if(!file_exists($pastaUpload. $_FILES['imagem_principal']['name'])){
$arquivo = $pastaUpload . $_FILES['imagem_principal']['name'];
} else {
$nome_arquivo = explode(".",$_FILES['imagem_principal']['name']);
do {
$para = $nome_arquivo[0]."_".$i.".".$nome_arquivo[1];
$nome_novo = rename($arquivo, $pastaUpload . $para);
$arquivo = $pastaUpload .$nome_novo;
$i++;
} while(file_exists($pastaUpload.$_FILES['imagem_principal']['name']));
}
输出:文件名.jpg_1
应该是:filename_2.jpg
它不能替换旧文件.. 这就是为什么我需要用数字重命名 它不需要循环制作,但每次上传文件时
【问题讨论】:
-
看起来爆炸没有按您希望的方式工作
-
爆炸有效,可能重命名函数错误或者我应该使用另一个函数
-
你试过回显 $para 吗?那条线似乎是问题最明显的根源,虽然我看不出有什么特别错误
-
我做了,它是正确的,我已经改变了 do while,它可以工作,但它替换了旧文件
标签: php file-upload filenames file-rename