pdf-download

ceene

Erfahrenes Mitglied
Hallo

Ich habe eine Frage und zwar möchte ich von meiner Homepage bestimmten Usern die Möglichkeit geben was zu downloaden. Ich habe auch schon einen geschützen Bereich erstellt in den nur angemeldete User kommen.

Nun möchte ich den Usern einige pdf-Dateien zum download anbieten. Leider öffnen sich die Dateien immer automatisch im Browser. Gibt es einen Befehl mit dem ich das verhindern kann und bestimmen kann, dass man nur downloaden kann?
 
ich glaube das geht garnicht, du musst den usern einfach hinschreiben "Ziel speichern unter..." verwenden..., ich denke mal jemand anderer wird eine bessere Lösung haben, aber zur Not ist es denke ich mal ok, verwenden ja viele Seiten so...
 
habe
header('Content-Disposition: attachment; filename="Produktblatt HWfoko manager deutsch.pdf"');
gefunden.

Da ich noch neu auf dem Gebiet bin habe ich noch ne frage. Wie kann ich denn das nun so in mein html einfügen, dass es als download funktioniert. Zur Zeit nutze ich ja noch den "a href" Befehl. Wie kann ich die beiden denn nun austauschen? bzw verknüpfen?
 
Du schickst deinen "a href" auf nee neue leere seite (bsp ausgabe.php) und mehr wie

<?
header('Content-Disposition: attachment; filename="Produktblatt HWfoko manager deutsch.pdf"');
?>

muß dann eigentlich auch net drinnenstehn (vorausgesetzt es handelt sich um den selben ordner..., glaub ich zumindest.

mfg Spikaner
 
vielen Dank, aber leider geht es nicht. Er ruft zwar die Datei "download.php" auf, aber er bietet nichts zum download an.

meine download.php sieht so aus:
Code:
<?php session_start (); ?>
<?php 
include ("checkuser.php"); 
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Download</title>
</head>
<?php

/**
 * @file download.php
 **/
$sPDFPath = '../Produktbl&auml;tter/';

header('Content-Type: application/octet-stream');

// Damit dein Browser weiss, wie Gross die Datei ist.
header('Content-Length: ' . filesize($sPDFPath));

if(isset ($_REQUEST["hwfokoman"]))
{
  // Die Datei wird als [[filename]] angeboten.
   header('Content-Disposition: attachment; 
                filename="Produktblatt%20HWfoko%20manager%20deutsch.pdf"'); 
}


// Sourcefile einlesen und ausgeben, durch die setzung von Content-Disposition
// wird die Datei nicht angezeigt, sondern als Download angeboten.
readfile($sPDFPath);

?>
<body>
</body>
</html>

und meinne Tabelle in html sieht wie folgt aus:
Code:
<td class="bodyText"><a href="download.php?hwfokoman=1" class="Stil7">HWfoko manager </a><a href="../Produktbl&auml;tter/Produktblatt HWfoko manager deutsch.pdf" class="bodyText Stil7"></a></td>
 
So geändert wurde:

* es darf KEINE Ausgabe geben, bevor header() gesendet wird, nicht mal ein leerzeichen oder ein zeilenumbruch vor den <?php den HTML code braucht man nicht, man sieht die Datei nie, sie soll nur den download starten

* mit readfile hattest du nur auf den Ordner, nicht auf die Datei gezeigt.

* if($_GET["hwfokoman"] == 1)) statt deinem anderen Konstrukt, ist denk ich mal besser wenn du noch andere files runterladbar machen möchtest mit dieser download.php

PHP:
<?php session_start (); 
include ("checkuser.php"); 
/**
 * @file download.php
 **/
$sPDFPath = '../Produktbl&auml;tter/';

header('Content-Type: application/octet-stream');

// Damit dein Browser weiss, wie Gross die Datei ist.
header('Content-Length: ' . filesize($sPDFPath));

if($_GET["hwfokoman"] == 1))
{
  // Die Datei wird als [[filename]] angeboten.
   header('Content-Disposition: attachment; 
                filename="Produktblatt%20HWfoko%20manager%20deutsch.pdf"'); 
// Sourcefile einlesen und ausgeben, durch die setzung von Content-Disposition
// wird die Datei nicht angezeigt, sondern als Download angeboten.

readfile($sPDFPath."Produktblatt%20HWfoko%20manager%20deutsch.pdf");
}
?>
 
vielen dank, aber leider bietet er immer noch nichts zum download an.

Er öffnet zwar die Seite aber das war es dann auch schon.
Folgende Fehler treten auf:
Warning: Cannot modify header information - headers already sent by (output started at /homepages/20/d212079107/htdocs/testhwsoft/scripte/checkuser.php:7) in /homepages/20/d212079107/htdocs/testhwsoft/scripte/download.php on line 9

Warning: filesize() [function.filesize]: Stat failed for ../Produktblätter/Produktblatt%20HWfoko%20manager%20deutsch.pdf (errno=2 - No such file or directory) in /homepages/20/d212079107/htdocs/testhwsoft/scripte/download.php on line 14

Warning: Cannot modify header information - headers already sent by (output started at /homepages/20/d212079107/htdocs/testhwsoft/scripte/checkuser.php:7) in /homepages/20/d212079107/htdocs/testhwsoft/scripte/download.php on line 14

Warning: Cannot modify header information - headers already sent by (output started at /homepages/20/d212079107/htdocs/testhwsoft/scripte/checkuser.php:7) in /homepages/20/d212079107/htdocs/testhwsoft/scripte/download.php on line 18

Warning: readfile(../Produktblätter/Produktblatt%20HWfoko%20manager%20deutsch.pdf) [function.readfile]: failed to open stream: No such file or directory in /homepages/20/d212079107/htdocs/testhwsoft/scripte/download.php on line 22
 
Zuletzt bearbeitet:
Zurück