Newsgroup: it.comp.programmare
Titolo: [PHP] Immagini

Ciao a tutti,
e grazie intanto a chia ha cercato di aiutarmi, ma io continuo a non
riuscire a far funzionare ne l'upload di file immagini direttamente
nel database ne il percorso di dove si trova il file.
Il problema è che ovviamente l'inserimento d'immagini si inserisce in
un database con già dei dati e che già funziona, mi risulta quindi
praticamente impossibile riscrivere il tutto dato che sono una 15ina
di file collegati tra loro.
Ho provatto a riadattare il tutto, ma comunque sia ottengo:
-o riesco ad effettuare l'upload del file grafico nelle cartella
interna al server (anche se il nome file cambia da originale.jpg a
phpednnr e robe del genere-- è normale?), ma il database non mantiene
il percorso del file, il PATH.
-oppure riesco a far scrivere il path sul database, ma non è quello
corretto inquanto punta al disco locale, cioè copia si il path, ma
quello della macchina uploadante e non quello di dove finirà nel
server.
Come posso fare e quale delle due vie è meglio seguire?
Nessuno mi sa spiegare come dovrebbe avvenire la cosa?
Ad esempio è possibile avvere uno script che al proprio interno ne
abbia annidato un altro che fa riferimento con un altro post ad
un'altra pagina php che provvede all'upload?
Nel mio caso specifico ad esempio io ho un file di questo tipo:
<?
require('include/shared.inc');
include("$head");
print "<h3><b>";
print "$new_article_header";
print "</b></h3>";
print "<form enctype=\"multipart/form-data\"
action=\"newsadmin.php3?mode=added_article\" method=\"post\">";
print "$the_title<br>";
print "<input type=\"text\" name=\"title\" size=\"40\">";
print "<br>";
print "$preview_text:<br>";
print "<TEXTAREA NAME=\"previewtext\" COLS=80 ROWS=5
WRAP=PHYSICAL></TEXTAREA>";
print "<br>";
print "<br>";
print "$news_text:<br>";
print "<TEXTAREA NAME=\"htmltext\" COLS=80 ROWS=30
WRAP=PHYSICAL></TEXTAREA>";
print "<br>";
//questa dovrebbe essere la parte che fa inserire l'immagine:
print "$foto_file<br>";
//print "<input type=\"File\" name=\"foto\" size=\"25\"
value=\"Upload\">";
print "<INPUT TYPE=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"30000\">
<INPUT NAME=\"picture\" TYPE=\"file\" value=\"PUT\">";
print "<br>";
//ma non funzeca bene
print "$your_name<br>";
print "<input type=\"text\" name=\"author\" size=\"40\"><br>";
print "$email_address<br>";
print "<input type=\"text\" name=\"email\"
value=\"$your_eaddress_here\" size=\"40\"><br>";
print "$button";
print "<br><input type=\"hidden\" name=\"date\" value=\"$nicedate\">";
print "</form>";
print "$today_is $nicedate";
print "<br><br>";
print "<a href=\"newsadmin.php3?mode=list\">$view_list_text</a>";
include("$foot");
?>

 ha scritto nel messaggio
20000615...@localhost.localdomain...
| Ciao a tutti,
| e grazie intanto a chia ha cercato di aiutarmi, ma io continuo a non
| riuscire a far funzionare ne l'upload di file immagini direttamente
| nel database ne il percorso di dove si trova il file.
| Il problema è che ovviamente l'inserimento d'immagini si inserisce in
| un database con già dei dati e che già funziona, mi risulta quindi
| praticamente impossibile riscrivere il tutto dato che sono una 15ina
| di file collegati tra loro.
| Ho provatto a riadattare il tutto, ma comunque sia ottengo:
| -o riesco ad effettuare l'upload del file grafico nelle cartella
| interna al server (anche se il nome file cambia da originale.jpg a
| phpednnr e robe del genere-- è normale?), ma il database non mantiene
| il percorso del file, il PATH.
| -oppure riesco a far scrivere il path sul database, ma non è quello
| corretto inquanto punta al disco locale, cioè copia si il path, ma
| quello della macchina uploadante e non quello di dove finirà nel
| server.
Sono un novellino del PHP, comunque da quel poco che ho capito, quando tu
fai l'upload di un file da form, viene creato un file temporaneo in
/usr/temp/ (o un'altra dir temporanea). L'unico modo per conservare il file
è quello di copiarlo in un'altra directory (oppure rinominarlo).
Scusa se ripeto cose che sicuramente sai già, ma mi serve anche per vedere
se ho capito ;)
Nel file PHP di destinazione ti arrivano certi parametri
$miofile (il nome del file temporaneo)
$miofile_name (il nome del file orginale).
$miofile_size (numero di byte ricevuti)
$miofile_type (mime type del file)
Se tu non sposti il file quello viene cancellato alla fine della richiesta.
Se riesci a spostarlo dovresti riuscire a ricostruire il path, una volta che
l'hai fatto sei a cavallo..
Spero di esserti stato utile!
andrea/bergamasco
--
______________________________
Le faq di it.comp.www.html:
http://digilander.iol.it/tamburo