Newsgroup: it.comp.www.php
Titolo: copia di file

Premetto che ho in uso sul server la versione 3.0.16 di PHP.
Dopo aver fatto un upload di un file dal mio computer al server (che usa un s.o. LINUX) il file trasferito viene salvato sulla directory /tem con un nome casuale, ad esempio: :/tmp/phpBtmTWm
A questo punto voglio trasferirlo in una directory rinominandolo.
Il manuale che uso, a causa della versione un po\' vecchiotta, mi fa usare una funzione:
function is_uploaded_file($filename) {
    if (!$tmp_file = get_cfg_var(\'upload_tmp_dir\')) {
        $tmp_file = dirname(tempnam(\'\', \'\'));
    }
    $tmp_file .= \'/\' . basename($filename);
    /* User might have trailing slash in php.ini... */
    return (ereg_replace(\'/+\', \'/\', $tmp_file) == $filename);
} 
che viene poi chiamata da:
if (is_uploaded_file($immagine1)) {
	copy($immagine1, /file/$immagine1_name);
} else {
    echo \&quot;Possible file upload attack: filename \'$immagine1\'.\&quot;;
}
(dove Simmagine1 contiene il percorso a /tmp/nome-temporaneo e $immagine1_name contiene il nome originale del file trasmesso.)
ma quando eseguo il comando ottengo:
Warning: Unable to create \'\': No such file or directory in /home/sites/site97/web/prova/inserisci.php3 on line 43
Non riesco a capire se sbaglio il percorso relativo a cui indirizzare il file o cos\'altro del comando copy.
Il file inserisci.php3 si trova nella directory \&quot;prova\&quot; in cui esiste la sottodirectory \&quot;file\&quot; in cui voglio salvare l\'immagine che trasferisco.
Il sistema FTP che uso per trasferire i file mi dice:
Your personal web directory is /user/ppp/web
ho provato ad usarlo come percorso relativo con /prova/file alla fine ma niente.
grazie a chiunque sia riuscito a leggere tutta questa roba.
ciao
Stefano
Posted by 
http://www.phpitalia.com

 ha scritto nel messaggio
news:9aenun$ta1$1...@news.flashnet.it...


In effetti il messaggio e\' lungo e poco chiaro. Io uso copy() come segue:
if (is_uploaded_file($immagine1)) 
{ 
copy($immagine1, /file/$immagine1_name); 
}
credo di sbagliare la sintassi, ovvero dove vanno le \&quot; ma soprattutto il percorso relativo dove salvare il file.
Ho visto la tua risposta ad un\'altra mail, credo fosse \&quot;upload dove sbaglio?\&quot; e il tuo script coincide a grandi linee con il mio, tranne che il tuo ha il path fatto per windows NT (cosi\' ad occhio).
Come si scrive il percorso dove copiare il file in un s.o. Linux? 
ciao e grazie
Stefano
Alessio ha scritto:
&gt; 
&gt; Nopn ho letto attentamente...
&gt; ma non basterebbe usare copy(); ?
&gt; 
&gt; Alessio
&gt; 
&gt;  ha scritto nel messaggio
&gt; news:9aenun$ta1$1...@news.flashnet.it...
&gt; &gt;
&gt; &gt; Premetto che ho in uso sul server la versione 3.0.16 di PHP.
&gt; &gt; Dopo aver fatto un upload di un file dal mio computer al
&gt; server (che usa
&gt; un s.o. LINUX) il file trasferito viene salvato sulla directory
&gt; /tem con un
&gt; nome casuale, ad esempio: :/tmp/phpBtmTWm
&gt; &gt;
&gt; &gt;
&gt; &gt; A questo punto voglio trasferirlo in una directory
&gt; rinominandolo.
&gt; &gt; Il manuale che uso, a causa della versione un po\\\'
&gt; vecchiotta, mi fa usare
&gt; una funzione:
&gt; &gt;
&gt; &gt;
&gt; &gt; function is_uploaded_file($filename) {
&gt; &gt;     if (!$tmp_file = get_cfg_var(\\\'upload_tmp_dir\\\')) {
&gt; &gt;         $tmp_file = dirname(tempnam(\\\'\\\', \\\'\\\'));
&gt; &gt;     }
&gt; &gt;     $tmp_file .= \\\'/\\\' . basename($filename);
&gt; &gt;     /* User might have trailing slash in php.ini... */
&gt; &gt;     return (ereg_replace(\\\'/+\\\', \\\'/\\\', $tmp_file) ==
&gt; $filename);
&gt; &gt; }
&gt; &gt;
&gt; &gt;
&gt; &gt; che viene poi chiamata da:
&gt; &gt;
&gt; &gt;
&gt; &gt; if (is_uploaded_file($immagine1)) {
&gt; &gt; copy($immagine1, /file/$immagine1_name);
&gt; &gt; } else {
&gt; &gt;     echo \\&amp;quot;Possible file upload attack: filename
&gt; \\\'$immagine1\\\'.\\&amp;quot;;
&gt; &gt; }
&gt; &gt;
&gt; &gt;
&gt; &gt;
&gt; &gt; (dove Simmagine1 contiene il percorso a /tmp/nome-temporaneo e
&gt; $immagine1_name contiene il nome originale del file trasmesso.)
&gt; &gt;
&gt; &gt;
&gt; &gt;
&gt; &gt; ma quando eseguo il comando ottengo:
&gt; &gt;
&gt; &gt;
&gt; &gt; Warning: Unable to create \\\'\\\': No such file or directory in
&gt; /home/sites/site97/web/prova/inserisci.php3 on line 43
&gt; &gt;
&gt; &gt;
&gt; &gt; Non riesco a capire se sbaglio il percorso relativo a cui
&gt; indirizzare il
&gt; file o cos\\\'altro del comando copy.
&gt; &gt; Il file inserisci.php3 si trova nella directory
&gt; \\&amp;quot;prova\\&amp;quot; in cui
&gt; esiste la sottodirectory \\&amp;quot;file\\&amp;quot; in cui voglio salvare
&gt; l\\\'immagine che trasferisco.
&gt; &gt;
&gt; &gt;
&gt; &gt; Il sistema FTP che uso per trasferire i file mi dice:
&gt; &gt;
&gt; &gt;
&gt; &gt; Your personal web directory is /user/ppp/web
&gt; &gt;
&gt; &gt;
&gt; &gt; ho provato ad usarlo come percorso relativo con /prova/file
&gt; alla fine ma
&gt; niente.
&gt; &gt;
&gt; &gt;
&gt; &gt; grazie a chiunque sia riuscito a leggere tutta questa roba.
&gt; &gt; ciao
&gt; &gt; Stefano
&gt; &gt;
&gt; &gt;
&gt; &gt; Posted by 
http://www.phpitalia.com
&gt; 
&gt; 
&gt; 
Posted by 
http://www.phpitalia.com