php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.06.2008, 14:28  
Neuer Benutzer
 
Registriert seit: 15.05.2008
Beiträge: 19
freehawk befindet sich auf einem aufstrebenden Ast
Standard Bilder download nicht anzeigen

Hallo zusammen,

ich habe mal wieder ein kleines Problemchen.

Ich will die Bilder meiner Galerie auch zum Download anbieten, indem man auf das Bild klickt und dann soll sich die Dialogbox "Speichern Unter" öffnen.

Dazu habe ich gegoogelt und folgender Code gefunden:

PHP-Code:
<?php 
 
    $path 
$_GET['path'];
    
$file $_GET['file'];
    
$name $_GET['name'];
    
    
//$path = './fotogallerie/alben/01_Pfadfinder/2007_Landesjamboree_(Lars)/';
    //$file = 'DSCF0783.resized.jpg';
     
    
header('Content-Description: File Transfer'); 
    
//header('Content-Type: application/octet-stream'); 
    
header('Content-type: '.mime_content_type($path $file)); 
    
//header('Content-Disposition: attachment; filename="' . $name . '"');
    
header('Content-Disposition: attachment; filename="' $file  '"'); 
    
readfile$path $file ); 

?>
Das geht auch ziemlich gut nur kann ich die Bilder wenn ich sie dann lokal gespeichert habe nicht öffnen. Ich glaube das liegt am Content Type, aber ich bin jetzt relativ ratlos.

Man sieht ja auch dass ich schon ein paar Dinge ausprobiert habe, nur wills nicht so wie ich es will.

Bitte um Hilfe.

Gruß
Markus
freehawk ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 02.06.2008, 14:39  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.425
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Hallo.
Du solltest darauf achten, dass es sich immer um eine "Download"-Content-Type handelt, nicht um einen, den der Browser selbst öffnen kann.
Es bietet sich von daher an, immer den Content-Type application/octet-stream zu verwenden.

Ansonsten vielleicht ein:
PHP-Code:
header("Accept-Ranges: bytes");
header("Content-Length: " filesize($path $file)); 

Geändert von Manko10 (02.06.2008 um 14:41 Uhr).
Manko10 ist offline  
Alt 02.06.2008, 14:42  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Oder du zippst die Bilder einfach...
cycap ist offline  
Alt 02.06.2008, 14:48  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.425
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

PHP-Code:
<?php
$new_name 
'abc.html';
$original_name 'test.html';

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$new_name\"");
header("Content-Description: File Transfer");
header("Accept-Ranges: bytes");
header("Content-Length: " filesize($original_name));

readfile($original_name);
exit();
?>
So funktioniert es bei mir.
Es funktioniert zwar auch mit dem eigentlichen Content-Type (hier: text/html) aber ich gehe da auf Nummer sicher, zumal der korrekte Dateityp trotzdem erkannt wird.
Manko10 ist offline  
Alt 02.06.2008, 15:16  
Neuer Benutzer
 
Registriert seit: 15.05.2008
Beiträge: 19
freehawk befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

danke für die Antworten. Ich habe das jetzt mal ausprobiert.

Bei mir werden aber immer noch nicht anzeigbare Bilder heruntergeladen.

Hat jemand noch ne Idee?

Gruß
Markus
freehawk ist offline  
Alt 02.06.2008, 15:39  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.425
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Stimmt der Dateiname?
Du musst bedenken, dass immer eine Datei zum Download angeboten wird. Ob diese auf dem Server tatsächlich existiert, ist eine andere Sache. Du solltest dir also $path . $file mal ausgeben lassen.
Manko10 ist offline  
Alt 02.06.2008, 16:50  
Neuer Benutzer
 
Registriert seit: 15.05.2008
Beiträge: 19
freehawk befindet sich auf einem aufstrebenden Ast
Standard

Der Dateinname stimmt.

Wenn ich bei dem Link einfach den Dateiname ausgebe, dann wird bei draufdrücken das Bild angezeigt.
freehawk ist offline  
Alt 10.06.2009, 20:45  
Neuer Benutzer
 
Registriert seit: 02.05.2009
Beiträge: 7
Tiimiiiboy befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Manko10 Beitrag anzeigen
PHP-Code:
<?php
$new_name 
'abc.html';
$original_name 'test.html';

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$new_name\"");
header("Content-Description: File Transfer");
header("Accept-Ranges: bytes");
header("Content-Length: " filesize($original_name));

readfile($original_name);
exit();
?>
So funktioniert es bei mir.
Es funktioniert zwar auch mit dem eigentlichen Content-Type (hier: text/html) aber ich gehe da auf Nummer sicher, zumal der korrekte Dateityp trotzdem erkannt wird.
Hallo habe dies auch mal ausprobiert, es wird das bild heruntergeladen aber wenn ich es öffne kommt ein text: Kann ich angeigt werden!
Die Grafik Datei die ich anegeben habe ist auf den server!
Ich finde die lösung nicht, habe auch schon google benutzt! Jedoch nichts gefunden!
Tiimiiiboy ist offline  
Alt 11.06.2009, 18:57  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.425
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Dann prüfe mal den Pfad zur Datei. Es kann auch nicht schaden, die heruntergeladene Datei mal im Texteditor zu öffnen, um zu sehen, ob vielleicht irgendetwas falsche heruntergeladen wurde.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bilder vom anderen Websapce anzeigen themonk PHP Tipps 2007 6 16.01.2007 23:58
Bilder anzeigen ohne direkten aufruf cytrobic PHP Tipps 2006 4 26.07.2006 21:36
Alternative Download Methode für Bilder gesucht CoverDB PHP-Fortgeschrittene 6 25.06.2006 11:07
Bilder anzeigen und nicht anzeigen Cyrus PHP Tipps 2005-2 7 26.10.2005 20:23
Bilder nur zur gewissen Zeit anzeigen lassen!? Kori HTML, Usability und Barrierefreiheit 1 10.07.2005 08:09
[Erledigt] Vergrößerte Bilder im selben Pop Up Fenster anzeigen lassen PHP Tipps 2005 8 01.04.2005 12:24
Bilder nach Namen anzeigen PHP Tipps 2005 11 06.03.2005 15:41
Bilder anzeigen Tschuu PHP Tipps 2005 1 05.02.2005 14:07
Bilder Automatisch anzeigen lassen? test022 PHP Tipps 2004-2 7 23.12.2004 00:11
bilder aus ordner lesen und geordnet anzeigen Beitragsarchiv 9 01.12.2004 10:06
Bilder nur von einer Seite aus anzeigen Beitragsarchiv 0 13.11.2004 18:41
Bilder im Verzeichnis anzeigen? PHP Tipps 2004 8 15.07.2004 19:09
Bilder vor dem download automatisch verkleinern PHP Tipps 2004 2 08.07.2004 02:04
[Erledigt] Bilder nur auf eigenem Server anzeigen lassen Server, Hosting und Workstations 9 30.06.2004 15:20
Bilder anzeigen PHP Tipps 2004 9 25.06.2004 14:44

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php bilder downloaden, html bild download, php bilder download, html bilder download, php bild downloaden, php bild download, bild download html, bilder download php, application-octet-stream-attachment, php bild herunterladen, bilder download html, html bild downloaden, bild downloaden php, bild downloaden html, application-octet-stream-attachment öffnen, html bild herunterladen, bild downloaden nicht anzeigen, bild download php, download bilder html, php download bilder

Alle Zeitangaben in WEZ +1. Es ist jetzt 08:29 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum