PDA

View Full Version : [Php]Download dati


dadedj
19-06-2007, 20:20
Ciao a tutti,

ho bisogno di sapere come si fa a far fare il download di file che risiedono in una cartella del server da parte di un utente che visita la pagina.
Mi spiego meglio:

Nel database ho memorizzato l'indirizzo del file, del tipo "materiale/nome file" ,dove materiale è il nome della cartella.

Poi eseguo la query ed estraggo questo indirizzo.

$result = mysql_query("SELECT*FROM materiale WHERE id_cd='$id' ");

while($he=@mysql_fetch_array($result)){
$scarica=$he["indirizzo"];
?>
<a href="<?php echo $scarica ?>">qui</a>
<?php
}

Ma come potete immaginare non funziona....è sbagliaot il modo di procedere?
Come posso fare?

Grazie ciao ciao

andbin
19-06-2007, 21:52
Leggi <questo> (http://www.hwupgrade.it/forum/showthread.php?t=1495348) thread (anche se era per una cosa un po' più specifica riguardo il download).

dadedj
20-06-2007, 14:01
Grazie per l'aiuto.
Intanto ho fatto cosi:
$filename = $_SERVER['DOCUMENT_ROOT']."/Pcpiu/";
$scarica=$he['file_materiale'];
?
<a href=" <?php echo $filename.$scarica ?>"> qui</a> <?php

Così facendo clic con il tasto destro e selezionando salva con nome funziona,ma cliccando su "qui" non si apre nessuna finestra per salvare...
grazie
ciao

andbin
20-06-2007, 14:15
Grazie per l'aiuto.
Intanto ho fatto cosi:
$filename = $_SERVER['DOCUMENT_ROOT']."/Pcpiu/";
$scarica=$he['file_materiale'];
?
<a href=" <?php echo $filename.$scarica ?>"> qui</a> <?php

Così facendo clic con il tasto destro e selezionando salva con nome funziona,ma cliccando su "qui" non si apre nessuna finestra per salvare...
grazieInnanzitutto, in effetti, il thread che ti ho segnalato è per una questione più particolare che probabilmente a te non interessa.
A te serve solamente mandare in output un link nella pagina.

$_SERVER['DOCUMENT_ROOT'] però non lo devi mettere. Perché rappresenta il path in locale sul server che fa riferimento alla root del sito e che non è visibile dal client!
Quindi se sotto la root del tuo sito hai una directory 'Pcpiu' e in $scarica hai un nome di file senza path, slash, ecc... ti basta fare:

<a href="<?php echo "/Pcpiu/$scarica"; ?>">qui</a>

dadedj
20-06-2007, 14:22
Ok,
però facendo così ,cliccando sopra "qui" il sito cerca di aprirmi una nuova pagina a quell'indirizzo,e logicamente non la trova...
Se provo a fare salva con nome con il tasto destro si apre la finestra per salvare il file ma subito si apre un'altra finestra che mi dice impossibile scaricare il file da...impossibile trovare il sito internet

andbin
20-06-2007, 14:46
Ok,
però facendo così ,cliccando sopra "qui" il sito cerca di aprirmi una nuova pagina a quell'indirizzo,e logicamente non la trova...
Se provo a fare salva con nome con il tasto destro si apre la finestra per salvare il file ma subito si apre un'altra finestra che mi dice impossibile scaricare il file da...impossibile trovare il sito internetMa sei andato a verificare se il link generato è corretto? Guarda il sorgente della pagina (o anche solo la status bar quando passi sul link). Esiste il file a quell'indirizzo?

dadedj
20-06-2007, 14:56
Si,il file da scaricare è in una tabella sul server,nel database ho il percorso/nome del file.

Solo che cliccando su "qui" viene fuori l'indirizzo
http://127.0.0.1/Pcpiu/materiale/schemaPcPiù.doc e non la finestra per salvare il file,cioè lui cerca di aprire una pagina internet,non il file.
Sicuramente sbaglio io,ho almeno è sbagliato il modo in cui penso io di risolvere il problema,ma è la prima volta che devo fare una cosa del genere...

andbin
20-06-2007, 15:02
http://127.0.0.1/Pcpiu/materiale/schemaPcPiù.docQuesto è un indirizzo assoluto che fa riferimento al localhost. Ma stai provando in locale sul tuo PC?

Comunque dal browser apri il sorgente della pagina e verifica che il link generato sia:

<a href="/Pcpiu/materiale/schemaPcPiù.doc">qui</a>

dadedj
20-06-2007, 15:11
Si sono in locale