php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.12.2011, 12:17  
Benutzer
 
Registriert seit: 23.08.2011
Beiträge: 31
PHP-Kenntnisse:
Anfänger
Flllo befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] [HILFE] PHP Downloadbutton mit Javascript

Hi User!

Ich habe folgendes Problem:

Ich möchte eine Art "FileHosting" anbieten ( Privat ).

Jetzt habe ich ein Script gefunden welches diesen Job übernimmt, jeder Upload bekommt einen Ordner mit einer info.php welche die Informationen speichert.

Jetzt wollte ich eine index.php erstellen, welche einen Downloadbutton enthält um die Datei "xyxyxxyx.xy" im Ordner herunterzuladen. Es sind pro Ordner zwei Dateien enthalten, info.php und xyxyxx.xy , nur die letztere soll heruntergeladen werden.

Leider habe ich nur ziemliche Grundkenntnisse von PHP, daher Frage ich hiermit nach einer Hilfestellung dafür.

Dankeschön

Flllo
Flllo ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 24.12.2011, 12:29  
Neuer Benutzer
 
Registriert seit: 07.11.2009
Beiträge: 10
PHP-Kenntnisse:
Fortgeschritten
jans befindet sich auf einem aufstrebenden Ast
Standard

Hallo Fillo,

du brauchst zwei Dateien:

download.php
PHP-Code:
$file = @$_GET["file"];
$dir  = @$_GET["dir"];

if(!
$file || !$dir) {
     
header("Location: index.php");
     exit();
}
if(!
file_exists("downloads/".$dir."/".$file)) {
     echo 
"<b><font color='red'>Die Datei existiert nicht (mehr)</font></b>";
     exit();
}

$file "downloads/".$dir."/".$file;
$name basename($file);
$size filesize("downloads/".$dir."/".);
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=".$name);
header("Content-Length:".$groesse);
readfile($file); 
index.php
PHP-Code:
<a href='download.php?dir=xyz&file=xyz.doc'>Jetzt Downloaden!</a
Natürlich musst du die xyz und xyz.doc dementsprechend ändern.
Der download.php musst du immer ?dir=[ORDNER]&file=[Datei-Name] übergeben

Grüße
jans
jans ist offline   Mit Zitat antworten
Alt 24.12.2011, 13:59  
Erfahrener Benutzer
 
Registriert seit: 03.04.2010
Beiträge: 191
PHP-Kenntnisse:
Anfänger
Suralc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von jans Beitrag anzeigen

download.php
PHP-Code:
$file = @$_GET["file"];
$dir  = @$_GET["dir"];

if(!
$file || !$dir) {
     
header("Location: index.php");
     exit();
}
if(!
file_exists("downloads/".$dir."/".$file)) {
     echo 
"<b><font color='red'>Die Datei existiert nicht (mehr)</font></b>";
     exit();
}

$file "downloads/".$dir."/".$file;
$name basename($file);
$size filesize("downloads/".$dir."/".);
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=".$name);
header("Content-Length:".$groesse);
readfile($file); 
index.php
PHP-Code:
<a href='download.php?dir=xyz&file=xyz.doc'>Jetzt Downloaden!</a
Natürlich musst du die xyz und xyz.doc dementsprechend ändern.
Der download.php musst du immer ?dir=[ORDNER]&file=[Datei-Name] übergeben
Würde ich von abraten, zum einen wird dein Script versagen, sobald eine Datei das Speicherlimit von PHP übersteigt(es gibt einige gute Alternativscripts im Manual zu readfile(), die mit jeglicher Dateigröße und mit HTTP-RANGE bzw. Apache-Methoden klarkommen), zum anderen würde ich mir überlegen, was passiert, wenn du z.B. folgenden Link aufrufst.

Code:
download.php?dir=../../../../etc&file=passwd
Zum anderen sollte dein Script einen Parse-Error hervorbringen
PHP-Code:
$size filesize("downloads/".$dir."/".); 
Auch empfinde ich sowas hier persönlich als äußerst unschon(Fehler sollte man nur dort unterdrücken, wo es wirklich keinen anderen Weg gibt).
PHP-Code:
$file = @$_GET["file"];
$dir  = @$_GET["dir"]; 
Warum nicht ordentlich und etwas in Richtung
PHP-Code:
$file = (isset/!empty($_GET['file'])) ? $_GET['file'] : false
Außerdem buggt "force-download" angeblich im IE < 8, also wurde ich hier auch eher auf eine Alternative ausweichen.

btw. Hinter das readfile sollte ein exit() bzw. sollte dafür gesorgt werden, das es keinen schließenden PHP-Tag gibt, ansonsten laden eventuelle Leerzeichen mit in der Datei und sie wird unbrauchbar.
__________________
Zitat:
Zitat von nikosch Beitrag anzeigen
Naja, anscheinend spricht die Steckdose kein HTTP. LOL
Suralc ist offline   Mit Zitat antworten
Alt 25.12.2011, 21:00  
Benutzer
 
Registriert seit: 23.08.2011
Beiträge: 31
PHP-Kenntnisse:
Anfänger
Flllo befindet sich auf einem aufstrebenden Ast
Standard

Danke Leute
Flllo ist offline   Mit Zitat antworten
Antwort


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
[Erledigt] Inhalt von einer URL ausgeben per Javascript Ahrta5 JavaScript, Ajax und mehr 4 31.08.2011 19:16
Google Maps JavaScript API mit PHP Array Demian JavaScript, Ajax und mehr 4 17.08.2011 12:27
[Erledigt] Problem mit dynamischer URL in Javascript Dateien da.eXecutoR JavaScript, Ajax und mehr 4 28.09.2010 17:18
timing Probleme bzw Zusammenspiel PHP Javascript thica PHP Tipps 2009 2 19.02.2010 19:06
[Erledigt] Ersatz für Javascript Mort1ferus JavaScript, Ajax und mehr 6 12.10.2009 09:35
Wie lade ich ein Javascript nach einer AJAX Abfrage neu? da.eXecutoR JavaScript, Ajax und mehr 3 21.09.2009 11:15
[Erledigt] Variable von Javascript mit 1x1px-Bild an PHP übergeben beneblack PHP Tipps 2009 18 03.05.2009 22:40
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
1101: 10x JavaScript und kein Ende ist abzusehen… Nikolaus 2.0 Adventskalender 2008 9 13.12.2008 20:11
Lerne Grundlagen | Quellensammlung cycap PHP Einsteiger 0 12.11.2008 16:23
PHP + Javascript + MYSQL socke PHP Tipps 2006 4 02.04.2006 22:02
Variable wird geändert bei Übergabe an Javascript PHP Tipps 2007 4 17.12.2005 16:53
JavaScript in JavaScript geschriebene Html-Datei einbinden. woods HTML, Usability und Barrierefreiheit 6 06.09.2004 18:33
Javascript HTML, Usability und Barrierefreiheit 5 31.08.2004 18:30

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
java script header(\'location: index.php\');, javascript downloadbutton, javascript download button, download per javascript und php

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:37 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