Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Imporre download e non l'apertura di un file

Hai problemi con i file Zip, vuoi formattare l'HD, non sai come funziona FireFox? O magari ti serve proprio quel programmino di cui non ricordi il nome! Ecco il forum dove poter risolvere i tuoi problemi.

Moderatori: Dylan666, hydra, gahan

Imporre download e non l'apertura di un file

Postdi robywan » 22/09/04 11:05

Salve a tutti,
in una pagine del mio sito voglio mettere dei file .wmf da scaricare.
Mi piacerebbe inserire dei link per cui, cliccando, comparisse sempre la richiesta di salvare il file. Il problema è che con explorer mi apre le clipart e devo inserire una nota "fai click col tasto destro e seleziona Salva immagine con nome".
Vorrei evitarlo...

Qualcuno sa come fare senza dover zippare i file?
- | - | - | - | - | - | - | - | - | - | - | - | -
SOS signore, se l'ex VP ha un tale DNA, non dovremmo tenere l'ACS fuori TV,
xchè senza questo ABC avremmo alla gola l'H2O, o peggio il DDT del KGB...
- | - | - | - | - | - | - | - | - | - | - | - | -
robywan
Utente Junior
 
Post: 68
Iscritto il: 28/08/01 01:00
Località: Cuneo

Sponsor
 

Postdi Dylan666 » 22/09/04 11:18

Le clipart sono un'altra cosa... ;)
Comunque credo dipenda unicamente dalle impostazioni del browser sul PC, quindi non puoi farci nulla. A parte convertire il filmato in MPG o AVI magari ;)
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi robywan » 22/09/04 11:26

Ciao Dylan,
grazie della risposta, ma non intendevo Window Media Video.

Mi riferisco a Window Meta File, che è un formato vettoriale importabile su Office come una normalissima clipart :)

Stiamo lavorando per mettere i file in un database in un campo blob, ma poi si presenta il problema di visualizzarlo oppure linkarlo su IE e Mozilla/Firefox...
- | - | - | - | - | - | - | - | - | - | - | - | -
SOS signore, se l'ex VP ha un tale DNA, non dovremmo tenere l'ACS fuori TV,
xchè senza questo ABC avremmo alla gola l'H2O, o peggio il DDT del KGB...
- | - | - | - | - | - | - | - | - | - | - | - | -
robywan
Utente Junior
 
Post: 68
Iscritto il: 28/08/01 01:00
Località: Cuneo

Postdi Dylan666 » 22/09/04 11:30

Scusa, scusa, scusa, mi ha tradito l'ultima lettera... WMF!
Stesso discorso però (impostazioni browser) tolto il fatto della conversione... I file ZIP comunque sono diffusussimi ormai, oppure puoi pensare a un archivio auto-estraente EXE ;)
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Re: Imporre download e non l'apertura di un file

Postdi archimede » 22/09/04 14:17

robywan ha scritto:Salve a tutti,
in una pagine del mio sito voglio mettere dei file .wmf da scaricare.
Mi piacerebbe inserire dei link per cui, cliccando, comparisse sempre la richiesta di salvare il file. Il problema è che con explorer mi apre le clipart e devo inserire una nota "fai click col tasto destro e seleziona Salva immagine con nome".
Vorrei evitarlo...

Qualcuno sa come fare senza dover zippare i file?
Si può fare ma è necessario usare un linguaggio lato server per modificare le caratteristiche (headers) della pagina inviata al browser; ergo, dipende da che server/linguaggio usi.

In ASP l'ho fatto (anche se non ho controllato quanto è cross-browser); altri linguaggi non saprei, ma dovrebbe essere possibile.
robywan ha scritto:Stiamo lavorando per mettere i file in un database in un campo blob, ma poi si presenta il problema di visualizzarlo oppure linkarlo su IE e Mozilla/Firefox...
Anche questo è senz'altro fattibile: di nuovo, dipende dal db/linguaggio usato (non stiamo parlando di Access, vero?).

HTH.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Re: Imporre download e non l'apertura di un file

Postdi Dylan666 » 22/09/04 14:21

archimede ha scritto:In ASP l'ho fatto (anche se non ho controllato quanto è cross-browser); altri linguaggi non saprei, ma dovrebbe essere possibile


Immginavo si potesse con ASP ma si pone il problema del servizio di hosting che si ha...
In PHP invece si potrebbe?
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Re: Imporre download e non l'apertura di un file

Postdi archimede » 22/09/04 14:33

Dylan666 ha scritto:In PHP invece si potrebbe?
Dovrebbe essere qualcosa tipo
Codice: Seleziona tutto
header( "content-disposition: attachment" );
header( "content-type: application/octet-stream" );
ma verificherei il reference! ;)

HTH.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi Dylan666 » 22/09/04 14:35

Vediamo se questo per il PHP va bene:

http://www.giorgiotave.it/guida_php/download_file.php
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi archimede » 22/09/04 14:43

Dylan666 ha scritto:Vediamo se questo per il PHP va bene:

http://www.giorgiotave.it/guida_php/download_file.php
Ma perchè, io che ho detto? :P

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi Dylan666 » 22/09/04 14:47

È che abbiamo scominciato a scrivere contemporaneamente ma io ho finito dopo perché Googlavo :P :P
Trascrivo per i posteri:

Quando vogliamo fare il download dobbiamo mandare il contenuto direttamente agli Header specificando il contenuto MIME(cioè lo standar di internet,ogni file ha il suo gif,zip txt). Nell'header ci devono essere

Content-type (tipo di documento)

Content-Disposition (destinazione del contenuto)

Content-Description (descrizione del contenuto )

Content-Length (lunghezza del contenuto)

Content-type Application/octet-stream costringe il browser(dipende da quale usate io IE) ad aprire la finestra di salvataggio file. Content-Disposition sarà attachent allegato, Content-Description per esempio Download e Content-Length la lunghezza del file che stiamo per scaricare.

Ecco la pagina dove elencheremo tutti i contenuti della nostra cartella docs
Codice: Seleziona tutto
<HTML>
<BODY>
<TABLE BORDER=8 WIDTH=40% ALIGN=CENTER BORDER=3>
<TR><TH>Fai clic sui link per scaricare i file</TH></TR>
<?
# elenco dei contenuti di una cartella con link
$cartella = opendir('docs');
while ($file = readdir($cartella)) {
$array_file[] = $file;
}
foreach ($array_file as $file) {
echo "<TR><TD><CENTER>";
if ( $file == ".." || $file == ".") {
continue;
}
$dimensioni_file=filesize("docs/".$file);
echo "<a href=\"

downloadit.php?nome_file=$file&dimensioni_file=$dimensioni_file

\">$file</a>,<BR>";
echo "</TR></TD></CENTER>";
}
?>
</TABLE>
</BODY>
</HTML>

Quando clicco sul file va alla pagina downloadit.php accodando le informazioni del file.

Codice: Seleziona tutto
<?php
header("Content-type: Application/octet-stream");
header("Content-Disposition: attachment; filename=$nome_file");
header("Content-Description: Download PHP");
header("Content-Length: $dimensioni_file");
readfile($nome_file);
?>

Questa pagina non fa altro che ricevere le informazioni e scaricare il file
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Re: Imporre download e non l'apertura di un file

Postdi robywan » 22/09/04 15:13

archimede ha scritto:In ASP l'ho fatto (anche se non ho controllato quanto è cross-browser); altri linguaggi non saprei, ma dovrebbe essere possibile.

Eh, io ho PHP/Mysql, ma magari riusciamo a trovare qualcosa di simile... se puoi scendere nei particolari :D
- | - | - | - | - | - | - | - | - | - | - | - | -
SOS signore, se l'ex VP ha un tale DNA, non dovremmo tenere l'ACS fuori TV,
xchè senza questo ABC avremmo alla gola l'H2O, o peggio il DDT del KGB...
- | - | - | - | - | - | - | - | - | - | - | - | -
robywan
Utente Junior
 
Post: 68
Iscritto il: 28/08/01 01:00
Località: Cuneo

wow

Postdi robywan » 22/09/04 16:29

Grazie a tutti, ho risolto il problema brillantemente!
Rw
- | - | - | - | - | - | - | - | - | - | - | - | -
SOS signore, se l'ex VP ha un tale DNA, non dovremmo tenere l'ACS fuori TV,
xchè senza questo ABC avremmo alla gola l'H2O, o peggio il DDT del KGB...
- | - | - | - | - | - | - | - | - | - | - | - | -
robywan
Utente Junior
 
Post: 68
Iscritto il: 28/08/01 01:00
Località: Cuneo

Re: Imporre download e non l'apertura di un file

Postdi archimede » 22/09/04 16:37

robywan ha scritto:Eh, io ho PHP/Mysql, ma magari riusciamo a trovare qualcosa di simile... se puoi scendere nei particolari :D
Su MySql devo passare, se vuoi possiamo parlare di Oracle ;).

Per quanto riguarda i particolari, come li chiami tu, mi pare che quanto sopra dovrebbe essere sufficiente per iniziare.

Comunque, dato che a volte un esempio vale più di mille parole, questa paginetta asp visualizza un file xls nel browser se richiamata normalmente, ne avvia il download se richiamata con il parametro ?mode=download:
Codice: Seleziona tutto
<%@LANGUAGE="VBSCRIPT"%>
<%
Option Explicit
Response.Buffer = True

Const adTypeBinary = 1
Dim strFilePath, objStream

strFilePath = "C:\mydir\prova.xls" ' Percorso fisico al file su disco.

Response.ContentType = "application/vnd.ms-excel"
If (Request.QueryString("mode") = "download") Then _
   Response.AddHeader "Content-Disposition", "attachment; filename=prova.xls;"

Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile strFilePath

Response.BinaryWrite objStream.Read

objStream.Close
Set objStream = Nothing
%>
HTH.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova


Torna a Software Windows


Topic correlati a "Imporre download e non l'apertura di un file":


Chi c’è in linea

Visitano il forum: Nessuno e 9 ospiti