WebSite X5Help Center

 
Corrado D.
Corrado D.
User

Spostare file con php  it

Author: Corrado D.
Visited 2165, Followers 1, Shared 0  

Buongiorno , avrei bisogno di uno script php per spostare un file da una dir all'altra del server.

Con quest:

<?php

// copy($originale,$copia);
$originale = 'cam_1.jpg';
$copia = 'cam_1_new.jpg';
if(copy($originale, $copia)) {
echo "Copia di <b>$copia</b> riuscita con successo!";
}else{
echo "Copia di <b>$copia</b> non riuscita!";
}
?>

riesco a copiare il file ma solo all'interno della stessa cartella (dove metterei lo script)

Dovrei spotare il file da una sottocartella "public_html/foto/snaps/nome.jpg" alla radice "public_html/nome.jpg" e non conosco la sintassi. (specificando, se serve, eventuali permessi).

vorrei usare uno scrip, perchè lo inserirei in un oggetto codice per farlo eseguire alla visualizzazione della pagina.

Non penso che valga la pena eseguirlo in un cron anche perche non saprei come fare.... e ho provato nell'oggetto codice funziona.

Grazie Corrado

Posted on the
8 ANSWERS - 1 USEFUL - 1 CORRECT
 stesil  
 stesil  
User

Ciao,

prova ad inserire il percorso nella variabile copia:

$copia = '../../cam_1_new.jpg';

Read more
Posted on the from  stesil  
Corrado D.
Corrado D.
User
Author

Gia provato in vari formati , ma non funziona. termina senza errori ma il file non lo copia.

Forse con i comandi copia URL o move ecc. ma non conosco sintassi

Read more
Posted on the from Corrado D.
 stesil  
 stesil  
User

Io l'ho provato prima di risponderti e funziona.

Ho riprodotto questa situazione: file img e file con lo script nella cartella snaps, contenuta a sua volta nella cartella foto che è contenuta nella cartella public_html. Richiamando lo script, il file img viene copiato nella cartella public_html.

Ho capito forse male la struttura delle tue cartelle?

Read more
Posted on the from  stesil  
Skeggia 12
Skeggia 12
Moderator

<?php

// copy($originale,$copia);
$originale = 'bg.jpg';
$copia = 'temp/bg_new.jpg';
if(copy($originale, $copia)) {
echo "Copia di <b>$copia</b> riuscita con successo!";
}else{
echo "Copia di <b>$copia</b> non riuscita!";
}
?>

così, come suggerito da stesil, funziona...

Read more
Posted on the from Skeggia 12
Skeggia 12
Skeggia 12
Moderator

se poi vuoi fare una cosa in più... senza cambiare tutte le volte il nome del file da copiare, modificando il file php, puoi trasformarlo così...

<?php

// copy($originale,$copia);
$originale = $_GET['ann'];
$copia = 'temp/' . $_GET['ann'];
if(copy($originale, $copia)) {
echo "Copia di <b>$copia</b> riuscita con successo!";
}else{
echo "Copia di <b>$copia</b> non riuscita!";
}
?>

scrivendo nella barra degli indirizzi (ammesso che hai scritto questo codice in un file che si chiama sposta.php)...

http://www.nometuosito/sposta.php?ann=nomefiledacopiare.ext

...preso da vecchi suggerimenti di MAeSI...

Read more
Posted on the from Skeggia 12
 stesil  
 stesil  
User

Ciao Skeggia smile

però usando un parametro in GET bisogna validarlo, soprattutto in una situazione come questa, dove vengono copiati dei file, altrimenti si rischia che qualche "burlone" si diverta a saturare lo spazio sul server di file inutili copiati... e non so quanto la validazione sia semplice da fare.

Read more
Posted on the from  stesil  
Skeggia 12
Skeggia 12
Moderator

ciao stesil...
già... tra l'altro analizzando bene, questo codice non modifica il nome del file... ma lo copia pari pari...
e la validazione non so proprio come farla... insomma... cancelliamo la risposta dalle possibilità pratiche...
un saluto...

Read more
Posted on the from Skeggia 12
Corrado D.
Corrado D.
User
Author

Stesil il tuo consiglio è stato utile. Avevo scritto male il percorso.

Grazie a tutti per i consigli. Seguendo quello di Scheggia ho anche inserito alcune righe che cancellano il file di arrivo prima di ricopiarlo e anche il file sorgente (tanto viene ricaricato dalla veb ogni 15 min) cosi si puo far girare il php allinfinito che avremo sempre un file solo.

Grazie di nuovo a tutti Sakuti Corrado

Read more
Posted on the from Corrado D.