Come faccio a copiare i file repository di nuova cartella con PHP
Domanda
Ho una cartella denominata "repository" nelle mie cartelle di admin. Questa cartella contiene 2 file: index.html e content.php. Quando un utente crea una nuova pagina del PHP crea una nuova cartella specificata dall'utente, allora sarà necessario copiare i due file in quella cartella, mentre lasciandoli nel repository.
copia (file, dest) non funziona. rinominare (file, dest) sposta i file nella nuova cartella, ma li perdo nel repository.
Come faccio a copiare i file in una cartella nella nuova cartella senza perdere i file nella cartella originale?
$dest = '../'.$menuLocation.'/'.$pageName;
$file1= "repository/index.html";
$file2= "repository/content.php";
mkdir($dest,0777);
rename($file1,$dest.'/index.html');
rename($file2,$dest.'/content.php');
$ menuLocation e $ pageName sono forniti dall'utente. I file sono lì, file_exists ritorna vero. Inoltre, la directory viene creata senza problemi. rename () funziona anche io perdo i file nella repository.
Soluzione
Per chiunque caccia per la soluzione a questo:
quando si utilizza copy () in PHP è anche necessario includere il nome del file.
copy(orginalfile,destination_with_filename);
Ad esempio:
sbagliato:
copy('/temp/sports/basketball.jpg','/images/sports/')
corretta:
copy('/temp/sports/basketball.jpg','/images/sports/basketball.jpg')
Altri suggerimenti
Usa copy (). Assicurati di catturare il valore di ritorno in modo che il programma sa se ha funzionato o meno. Controllare anche il permesso dei file e delle directory per confermare che l'utente che esegue lo script PHP è in grado di creare il nuovo file nel luogo specificato. Si potrebbe desiderare uso is_writable () sulla directory per confermare queste ipotesi.