Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Download - Files von Internetseite (https://www.delphipraxis.net/174062-download-files-von-internetseite.html)

ATS3788 1. Apr 2013 08:02


Download - Files von Internetseite
 
Hallo

Ich habe einen Button auf meiner Webpage, wie ist es möglich so etwas wie von
einem Link "Speicher unter" anzustoßen.

Brauche ich unbedingt ein Frame wie

http://johnculviner.com/category/jQu...-Download.aspx

oder geht das auch einfacher oder noch ganz anders

Frohe Ostern

p80286 1. Apr 2013 10:26

AW: Download mit javascript jquery
 
Zitat:

Zitat von ATS3788 (Beitrag 1209552)
Hallo

Ich habe einen Button auf meiner Webpage, wie ist es möglich so etwas wie von
einem Link "Speicher unter" anzustoßen.

Brauche ich unbedingt ein Frame wie

http://johnculviner.com/category/jQu...-Download.aspx

oder geht das auch einfacher oder noch ganz anders

Frohe Ostern

:?::?: Bahnhof? Kofferklauen :?::?:

Das ist etwas konfus, könntest Du das bitte etwas näher erläutern?

Gruß
K-H

Valle 1. Apr 2013 11:56

AW: Download mit javascript jquery
 
Habe ich dich damit richtig verstanden:

Du hast auf deiner Webseite einen Download-Link (als Button, aber das ist ja egal). Und wenn der User drauf klickt, soll sich die entsprechende Seite nicht öffnen (wie zB ein PDF oder eine Textdatei), sondern zum Download angeboten werden?

Falls das richtig ist: Sowas macht man nicht mit JavaScript. Das ist ein Fall für ordentliche Serverkonfiguration. Es gibt einen HTTP-Header, den man für diese Seite mitsendet, damit sie zum Download angeboten wird, statt sie zu öffnen. (Content-Disposition, IIRC)

Falls du das einfach mit JavaScript statt mit einem Link starten willst: einfach einen "JavaScript Redirect" zur Download-Seite machen. (window.location)

stOrM 2. Apr 2013 04:49

AW: Download mit javascript jquery
 
Zitat:

Zitat von Valle (Beitrag 1209571)
Habe ich dich damit richtig verstanden:

Du hast auf deiner Webseite einen Download-Link (als Button, aber das ist ja egal). Und wenn der User drauf klickt, soll sich die entsprechende Seite nicht öffnen (wie zB ein PDF oder eine Textdatei), sondern zum Download angeboten werden?

Falls das richtig ist: Sowas macht man nicht mit JavaScript. Das ist ein Fall für ordentliche Serverkonfiguration. Es gibt einen HTTP-Header, den man für diese Seite mitsendet, damit sie zum Download angeboten wird, statt sie zu öffnen. (Content-Disposition, IIRC)

Falls du das einfach mit JavaScript statt mit einem Link starten willst: einfach einen "JavaScript Redirect" zur Download-Seite machen. (window.location)

Vollkommen richtig was Du schreibst Bsp. musste ich mal den Download von Pdf Dateien forcieren anstatt das diese im Browser geöffnet werden (Apache Server)

Beispiel:

Code:
<FilesMatch "\.(?i:pdf)$">
  ForceType application/octet-stream
  Header set Content-Disposition attachment
</FilesMatch>

ATS3788 2. Apr 2013 08:07

AW: Download mit javascript jquery
 
Das ist ja alles schön und gut verstehen
tue ich aber nur Bahnhof.


Code:
<FilesMatch "\.(?i:pdf)$">
   ForceType application/octet-stream
   Header set Content-Disposition attachment
 </FilesMatch>
HTML ist das wohl nicht. Ich habe davon keinen Plan.
Kann mir jemand erklären was der Code aussagt oder wo man
eine Beschreibung dafür bekommt.

Das hat mir mein Provider geantwortet.

Zitat:

Note:
Es gibt nur einen FTP-Zugang. Sie können auf Ihre Homepage daher keinen
FTP-Zugang anbieten, ohne Ihre gesamten Zugangsdaten mitteilen zu
müssen.
Sie können aber einwandfrei Dateien zum Download anbieten.
Sie müssen nur diese Dateien in Ihrem Webspace speichern. Anschliessend
können Sie einen Link zur diesen Datei auf Ihrer Homepage erstellen.
Wenn Sie z.B. eine Datei namens 'music.mp3' in einem Verzeichnis namens
'download' gespeichert haben, wird diese Datei unter diesem Link
erreichbar:
Der Download-Manager vom Browser der Besucher Ihrer Homepage wird dann
den Download anbieten, wenn der Link angeklickt wird.

mjustin 2. Apr 2013 08:20

AW: Download mit javascript jquery
 
Hallo,

mit dem folgenden HTML Code kann man einen Download Button auf einer Webseite realisieren, der den Download einer Datei (im Beispiel 'deinedatei.exe') startet. Damit es funktioniert muss die Datei im gleichen Verzeichnis auf dem Webserver wie das HTML Dokument liegen. Andernfalls kann man noch Pfadangaben verwenden (relativ oder absolute Dokumentpfade auf dem Webserver, z.B. '/download/meinedatei.exe')

* ohne JavaScript:
Code:
<form action="deinedatei.exe">
  <input type="submit" value="Download"/>
</form>
* mit JavaScript (siehe hier, ohne Gewähr):
Code:
<button type="button" name="Download" onClick="window.open('deinedatei.exe')">Download</button>

ATS3788 3. Apr 2013 16:45

AW: Download mit javascript jquery
 
Danke mjustin
nur da wird dann die Datei geöffnet.
Ich möchte aber das ein

"Speichern unter" Dialog geöffnet wird.

mjustin 3. Apr 2013 16:51

AW: Download mit javascript jquery
 
Zitat:

Zitat von ATS3788 (Beitrag 1209871)
Danke mjustin
nur da wird dann die Datei geöffnet.
Ich möchte aber das ein

"Speichern unter" Dialog geöffnet wird.

Das ist browserabhängig. IE,Firefox & Co. haben dazu Einstellmögölichkeiten, der Server hat darauf keinerlei EInfluss. Oder verstehe ich es falsch, und der Browser hat die EXE Datei komplett heruntergeladen und ausgeführt - ohne Speichern Dialog?

Luckie 3. Apr 2013 18:53

AW: Download mit javascript jquery
 
Zitat:

Zitat von mjustin (Beitrag 1209873)
und der Browser hat die EXE Datei komplett heruntergeladen und ausgeführt - ohne Speichern Dialog?

Ich hoffe nicht, denn das wäre dann ja wohl der Super-GAU.

ATS3788 4. Apr 2013 10:05

AW: Download mit javascript jquery
 
Hallo
es ist doch egal was für eine Datei .Exe .mp3 .bla
es soll ein Dialog Fenster aufgehen mit speichern unter
und nicht die Datei geöffnet werden.
Bei einem HLML Link ist das kein Problem, wenn ich damit eine Datei verlinke,
nur das ist um es nett zu sagen primitiv und unprofessionell
und es funktioniert nur mit rechter Maustaste................
Habe mich deswegen bei www.html.de angemeldet, die haben
mir geantwortet Google doch da gibt es so viele Möglichkeiten.

Deswegen noch mal einen Dank an alle in diesem Forum, eure Antworten sind in der Regel
wirklich hilfreich und von hoher Qualität.

ZenForAll

Martin Michael

bernerbaer 4. Apr 2013 11:01

AW: Download mit javascript jquery
 
da sind zwei verschiedene Dinge zu berücksichtigen
1. Das Speichern von Dateien und nicht das automatische Öffnen
um dies zu realisieren, muss auf dem Server eine .htaccess Datei erstellt werden mit etwa folgendem Ihhalt
Code:
AddType application/octet-stream .jpg .jpeg .png .gif
Header set Content-disposition "attachment;"
in diesem Beispiel werden Links auf Bilder (*.jpg, *.jpeg, *.png, *.gif) nicht im Browser geöffnet sondern zum Download angeboten

2. Die Dialogbox "speichern unter" anzeigen
Hier ist mir keine Lösung bekannt die für alle Browser funktioniert, ich denke, das ist wirklich dem User überlassen, wie und wo er seine Daten speichern will, indem er dies in seinem Browser konfiguriert

Valle 4. Apr 2013 12:10

AW: Download mit javascript jquery
 
Du kannst das mit der Datei namens ".htaccess" auch weglassen und stattdessen einen Downloader mit PHP erstellen.

Siehe hier.

Dieser Weg wird von fast jedem Download-Anbieter verwendet.

Mit dieser Variante geht dir so eine meist verstecke .htaccess-Datei nicht verloren und du bist flexibler, falls du mal einen Download-Counter mit einbauen möchtest. Bei manchen Providern funktioniert .htaccess leider sowieso nicht wie gewünscht. Außerdem kannst du deine Downloads besser "verstecken" oder schützen, da nur die PHP-Datei wissen muss wo sich der Download tatsächlich befindet.

Übrigens: Nimm bitte nicht die JavaScript-Variante aus Beitrag #6. Das ist wirklich reinste Schikane für die, die kein JavaScript aktiviert haben. Vorteile bringt es überhaupt keine.

Liebe Grüße,
Valentin

ATS3788 5. Apr 2013 09:22

AW: Download mit javascript jquery
 
Wow
Danke, das habe ich mir einfacher vorgestellt.
Ich dachte das geht mit JQuery oder simple JavaScript :pale:

ATS3788 6. Apr 2013 08:08

AW: Download mit javascript jquery
 
Valle
hört sich gut an, aber ich möchte mich nicht noch mit Pearl beschäftigen.
Da merkt man wie sehr ich unser Delhi liebe. Da kann am alles.......

IM www.HTML.de Forum habe ich dies Antwort bekommen

http://www.html5rocks.com/en/tutorials/file/dndfiles/

HTML 5 hat nicht jeder Browser aber so what, es ist aber etwas wo man aufbauen kann.

Valle 6. Apr 2013 11:49

AW: Download mit javascript jquery
 
Zitat:

Zitat von ATS3788 (Beitrag 1210052)
Danke, das habe ich mir einfacher vorgestellt.

Ich will dir nicht zu nahe treten, aber das ist einfach... :duck:

Wenn du kein PHP kannst, erstellst du einfach eine Datei namens ".htaccess", kopierst das Zeug mit dem content-disposition-Header da rein und lädst die Datei in den Ordner, wo auch die Downloads auf deinem Server liegen. Also am besten ein extra-Downloads-Ordner. Alle Dateien die nun in diesem Ordner aufgerufen werden, werden automatisch zum Download angebot statt sie zu öffnen.

Zitat:

Zitat von ATS3788 (Beitrag 1210239)
hört sich gut an, aber ich möchte mich nicht noch mit Pearl beschäftigen.

Musst du auch nicht. Was du da siehst wäre auch PHP. Und Pearl wirst du im Webbereich eher selten antreffen. Dann doch lieber Perl. Aber wie gesagt, es geht auch mit der einfachen .htaccess-Lösung, wenn du kein PHP verwendest. :stupid: :zwinker:

Zitat:

Zitat von ATS3788 (Beitrag 1210239)

:gruebel:

Was du dort siehst, hat mit der Frage wie ich sie verstanden habe, aber überhaupt nichts zutun?!

Liebe Grüße,
Valentin

ATS3788 11. Apr 2013 07:56

AW: Download mit javascript jquery
 
Danke Valle dachte ich mir schon, habe das von www.html.de
als Antwort bekommen.

Neuer Ansatz neues Glück.

Code:
<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc()
{  //1
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari   //*x
  xmlhttp=new XMLHttpRequest();
  }                                       //*x
else
  {// code for IE6, IE5    //*y
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }                  //*y
xmlhttp.onreadystatechange=function() {   //2
 
 if(xmlhttp.readyState==4){ //3
  switch (xmlhttp.status){  //4
   case 200: {
   var S = xmlhttp.responseText;
    document.getElementById("myDiv").innerHTML= S;
    if (S == "") { document.getElementById("myDiv").innerHTML = "MMMhh"};
    break;
    };
   case 404:
   document.getElementById("myDiv").innerHTML="Download not available !"; break; //(HTTP-Status-Code ist '404')
   case 0:
   document.getElementById("myDiv").innerHTML="Server does not response !"; break; //(HTTP-Status-Code ist '0')
   default:
    log_error("Unknown Error !"); break; //(HTTP-Status-Code ist nicht '200')
  } // 4
 } //  3
}; // 2
xmlhttp.open("GET","download.php",true);
xmlhttp.send();
}; // 1
</script>
</head>
<body>

<h2>AJAX</h2>
<button type="button" onclick="loadXMLDoc()">Request data</button>
<p>Click the button several times to see if the time changes, or if the file is cached.</p>
<div id="myDiv"></div>
</body>
</html>

Zitat:

<?PHP
/**
* Dateien zum Download anbieten
*
* Systemvoraussetzung:
* Linux
* PHP 3, PHP 4, PHP 5
*
* Dateien zum Download anbieten
*
* LICENSE: GNU General Public License (GPL)
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2,
* as published by the Free Software Foundation.
*
* @category Verschlüsselung
* @author Damir Enseleit <info@selfphp.de>
* @copyright 2001-2006 SELFPHP
* @version $Id: download.php,v 0.10 2006/04/14 13:25:30 des1 Exp $
* @link http://www.selfphp.de
*/

/**
* Erstellt die Navigationsleiste für die einzelnen Seiten
*
* @param string $file Datei, die zum Download steht
* @param string $dir Verzeichnis mit abschließenden Slash (/)
* @param string $type Mime-Type
*
* @return void
*/

function makeDownload($file, $dir, $type)
{

header("Content-Type: $type");

header("Content-Disposition: attachment; filename=\"$file\"");

readfile($dir.$file);

}
// gif - image/gif
// jpg - image/jpeg
// png - image/png
// zip - application/zip
// txt - text/plain

$dir = '/download/';
$type = 'application/zip';
$file = 'Report0.zip';

if(!empty($_GET['file']) && !preg_match('=/=', $_GET['file']))
{
if(file_exists ($dir.$_GET['file']))
{
makeDownload($_GET['file'], $dir, $type);
}
}
?>
OK soweit bin ich nun.
Bekomme sogar xmlhttp.status 200
nur übertragen wird nix.
Hat noch einer eine Idee ?

ATS3788 11. Apr 2013 09:35

AW: Download mit javascript jquery
 
Das Problem liegt hier im php script

if(file_exists ($dir.$_GET['file']))

ich habe ein test.txt im ordner download angelegt
und file_exists gibt false aus.

Valle 11. Apr 2013 11:04

AW: Download mit javascript jquery
 
Hallo,

der PHP-Skript sieht brauchtbar aus. Aber mir ist erneut nicht klar, was dieses JavaScript da oben für einen Vorteil bringen soll. Lass es weg und verlinke einfach direkt auf diese download.php.

Was das file_exists Problem angeht: du musst in $dir den absoluten Pfad zu diesem Verzeichnis auf dem Server schreiben. Sowas wie "/srv/www/htdocs/download" oder so. Wenn du einen Fehler von PHP bekommst siehst du den Pfad meistens. Der hängt auch stark von deinem Anbieter ab. Im Zweifel einfach mal eine Funktion in PHP aufrufen, die nicht existiert. In der dann erscheinden Fehlermeldung siehst du den Pfad.

Noch 'ne Frage: warum erstellst du nicht einfach eine Datei, nennst sie .htaccess, schreibst Header set Content-disposition "attachment;" rein und lädst sie in den Downloads-Order? :gruebel:

Liebe Grüße,
Valentin

ATS3788 11. Apr 2013 11:09

AW: Download mit javascript jquery
 
Oh Man was für eine schwere Geburt

Hatte am Anfang vor download
ein slash "/" zu viel.
(Obwohl die PHPler exta sagten , das muss dahin)

Werde auf meinem Webauftritt,
Download von Dateien mal verarbeiten.

Das gut daran habe nun mini rudimentäre Ahnung von php.

Danke an alle in diesem tollen Forum.

Zitat:

Wenn Du Dich nicht mehr konzentrieren kannst
lernst Du erst zu schätzen, was es heißt
klar zu denken.

ATS3788 11. Apr 2013 11:14

AW: Download File Webpage (Homepage)
 
Valle danke

Ich habe keine Ahnung was ich da machte !!!!!!!!

Nun weiß ich etwas mehr. Wenn Wissen selbstverständlich wird,
dann versteht man die Anfänger nicht mehr.

Den JS brauche ich für irgendwann später um eine große Datei zu splitten.

ATS3788 13. Apr 2013 07:21

AW: Download Datein im eigenen Webspace
 
Ich möchte in wenigen Worten beschreiben.
Wie ich zum Ziel kam.

1.) Meine Naivität dies alleine mit HTML und JavaScript lösen zu können.
2.) Bei meinem Provider gab es die Möglichkeit PHP Messages freizuschalten, was ich viel zu spät durch Zufall bemerkte.
3.) Mit PHP einer wirklich einfachen Script Sprache kommt man zum Ziel

der Basic Script sieht bei mir so aus

Code:
<?PHP
$fname = preg_replace("/[^0-9a-z.\-_ ]/i", "", strip_tags(trim($_GET["file"])));

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header('Cache-Control: private',false);

header('Content-Type: application/force-download');
//header("Content-Type: application/octet-stream");
header('Content-Disposition: attachment; filename="anders.pas"' );
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.filesize($fname));

readfile("download/$fname");
exit();
?>
4.) Ein paar Links die für mich sehr sehr Hilfreich waren

http://php.lernenhoch2.de/lernen/php-tutorial-als-pdf/
http://www.feenders.de/ratgeber/expe...erzwingen.html
http://webdesignblog.de/webdesign/ca...er-php-fehler/

Besonderen Danke an Valentin

Ein schönes sonniges Wochenende

ZenForAll


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz