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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top