[javascript] bestanden downloaden, ook .doc, .pdf etc

Pagina: 1
Acties:
  • 57 views sinds 30-01-2008

  • Zynth
  • Registratie: September 2001
  • Laatst online: 29-07 15:30
Als je een .doc of een .pdf file wilt downloaden door er op te klikken,
dan opent internet explorer deze zelf, in plaats van
een "opslaan als" dialog weer te geven.
Is er een manier door bijv. mbv javascript ervoor te zorgen
dat ik documenten wél kan opslaan, zonder dat iex ze opent?
(ik weet wel dat rechtermuisknop>opslaan als, ook kan, maar het is voor subern00bs :P)

  • Yellow|A
  • Registratie: Maart 2000
  • Niet online

Yellow|A

Allotaja of rock and rollah

Dan moet je, als ik het niet verkeerd heb de mime types aanpassen. Als ik het niet verkeerd heb :)

bijvoorbeeld via de zoek functie op got:
[rml][ HTML] Word document hyperlink[/rml]
Bestand downloaden dmv button
Word bestand !

Komt best vaak voor :)

|{ brrr }] |


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Klopt, de server moet aan de browser vertellen wat voor soort bestand het is. Als de browser het herkent als een formaat wat door de browser zelf geopend kan worden (al dan niet met een plugin) zal de browser dat doen.
Een mime-type als application/whatever zal de browser niet als dusdanig herkennen, en dus aanbieden het te downloaden. Client-side is dit echter onmogelijk (je kan hooguit de gebruiker vertellen dat ze rechter-muis-knop-save-as moeten gebruiken).

Voorbeeldje (PHP):
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$file = "document.doc";                # The file
$path = "../downloads/";             # Path to the download file

if ($fp=@fopen($path.$file,"r")) {

  header("Content-type: application/x-unknown");
  header("Content-Disposition: attachment; filename=$file");
  header("Pragma: no-cache");
  header("Expires: 0");
  @fpassthru($fp);

} else {

  echo "file not found";

}

Intentionally left blank


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Met Javascript kun je eventueel ook kijken naar execCommand("SaveAs") (IE only).

http://msdn.microsoft.com...e/methods/execcommand.asp

Maar dit is al heel vaak behandeld.. beste oplossing is serverside, zoals crisp geeft (al ben ik niet weg van zijn code met al die @nti-errors ;))

Dit topic is gesloten.