ciao a tutti,
vorrei rinominare un file se in una cartella è presente un file con lo stesso nome
ho fatto cosi
ma ricevo erroreCodice PHP:
rename($v['name'], $v['name']+$v['size']);
codice:Warning: rename(foto1.jpg,24941):
:master:
ciao a tutti,
vorrei rinominare un file se in una cartella è presente un file con lo stesso nome
ho fatto cosi
ma ricevo erroreCodice PHP:
rename($v['name'], $v['name']+$v['size']);
codice:Warning: rename(foto1.jpg,24941):
:master:
usa file_exists
se esiste rinomini.
ma quella aggiunta che fai non la capisco.
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
gia lo uso guarda ti posto un pezzo di codice
chiaramente se cancello l'immagine e provo a caricarla funzionaCodice PHP:
foreach($_FILES as $k => $v) {
$qualehidden = substr($k, 3, 1);
$sottocartella = $_POST['hidden'.$qualehidden];
$uppath = "../public/prodotti/$tabella/$cart/$sottocartella";
if(isset($v['name']) && $v['name'] !== '') {
$moveto = $uppath.'/'.$v['name'];
if(file_exists($moveto)){
$logs .= $errori[1].'
';
//rename($v['name'], $v['size'].$v['name']);
}
......continua
concatena il nuovo nome fuori dalla funzione rename.
Codice PHP:
if(file_exists($moveto)){
$moveto = "$v[size].$moveto";
$logs .= $errori[1].'
';
rename($v['name'], $moveto);
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
ricevo questo errore...![]()
codice:Warning: rename(foto1.jpg,24941.../public/particolare/foto1.jpg): No such file or directory
personalmente piuttosto che complicarmi la vita controllando i nomi dei files durante l'upload, ed eventualmente rinominandoli se gia presenti, ho sempre preferito dare al file un nome generato da me in modo univoco. se poi ho bisogno anche di mantenere il nome originario del file, lo salvo nel database e lo uso quando realmente mi serve. per generare il nome univoco uso questa funzione:
Codice PHP:
/*
Restituisce un codice alfanumerico univoco di almeno 12 cifre.
Converte in base 36 un microtime.
*/
function unique_id_alphanum() {
$now = (string)microtime();
$now = explode(' ', $now);
$unique_id = $now[1].str_replace('.', '', $now[0]);
unset($now);
return strtoupper(base_convert($unique_id, 10, 36));
}
potrebbe essere un'idea... grazie