Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Download mit javascript

Empfohlene Antworten

Veröffentlicht

Hi,

ich hoffe das dies hier her gehört.

ich bin ein absoluter anfänger was javascript betrifft und will gern einen Dateidownload anbieten von bestimmten dateien. hierbei hilft aber kein normler <a href... befehl. ich habe einige dateien auf meinen linuxwebserver welche z.b. keine dateierweiterungen besitzen. diese möchte ich gern als download anbieten fürs intranet. leider zeigt mir der IE immer nur den inhalt der datei an. ich möchte aber das wenn der nutzer auf den link klickt, diese datei gedownloaded wird und nicht deren inhalt angezeigt wird und zwar ohne rechte maustaste und ziel speichern unter.

ich habe gehört üebr javascript wäre dies möglich. kann mir da einer helfen?

und meine zweite frage wäre, müssen die dateien im documentroot unbedingt sein oder gibt es ein möglichkeit des linkens von dateien die außerhalb des documentroot sind.

für hilfen oder tipps wäre ich sehr dankbar.

mfg

ich hoffe das dies hier her gehört.

Wohl eher in Fachliches/Webdesign

leider zeigt mir der IE immer nur den inhalt der datei an. ich möchte aber das wenn der nutzer auf den link klickt, diese datei gedownloaded wird und nicht deren inhalt angezeigt wird und zwar ohne rechte maustaste und ziel speichern unter.

ich habe gehört üebr javascript wäre dies möglich. kann mir da einer helfen?

Wäre mir neu, ich würde eher sagen, dass Du sowas nur serverseitig realisieren kannst, indem Du den entsprechenden Content-Type-Header vorrausschickst...

und meine zweite frage wäre, müssen die dateien im documentroot unbedingt sein oder gibt es ein möglichkeit des linkens von dateien die außerhalb des documentroot sind.

Auch das ist nur serverseitig realisierbar, wenn der Parser Zugriff darauf hat...

Ansonsen hilft die Anpassung des Webservers, so dass Du z.B. einen Alias auf das Verzeichnis mit den Dokumenten ausserhalb des DocumentRoot einrichten kannst...

kannst du mir sagen wie das geht mit dem type header vorrausschicken oder mir nen guten link dazu geben?

wie gesgat bin nen neuling...

ich habe mal eine textdatei namens test.ict verlinkt.

nun problem ist, das der browser diese als textdatei interpretiert und somit anzeigt statt downzuloaden.

ich habe mal in meine httpd.conf geschaut und den eintrag defaulttype text/plain gefunden. dies sagt ja dem server wenn du ni weißt was das für ne datei is dann interpretiere sie als textdatei oder?

jedenfalls half ein ausklammern des eintrags auch nichts.

was muß ich den tun, damit er solche dateiennicht als textdatei interpretiert und die somit downloaded?

in der httpd.conf oder .htaccess:

AddType mimetype/mimesubtype erweiterung

z.b. AddType application/pdf pdf

im php-script:

header("Content-Type: mimetype/mimesubtype");

z.b. header("Content-Type: application/pdf");

EDIT:

"AddType text/plain ict" sollte funktionieren, allerdings wird der text dann vermutlich IM browser angezeigt und nicht als attachment mit "speichern unter" geöffnet - dazu sind noch weitere header nötig (ich glaube, "Content-Disposition: attachment").

s'Amstel

Also ich habe in meiner httpd.conf mal den type application/zip .ict eingefügt in der hoffnung erwürde diese datei als zip interpretieren und dann downloaden.

leider auch ohne erfolg, wird immer als textdatei angesehen.

in meinem script steht übrigens folgendes:

<form action="pfad" mome-type="apllicaton/zip"<input type="submit" value="download"/></form>

danke für den link. konnte man viele nützlich infos finden.

sorry,

also da gab es verschiedene unterschiedliche meinungen ob das überhaupt realisierbar ist da der IE nicht nur auf die Dateiendungen schaut. somit gabs die unterschiedlichsten und kompliziertesten lösungsvorschläge.

Bei mir hats jetzt funktioniert. habe in der httpd.conf nen neuen mime type angegeben.

AddType application/x-save .ict

das reichte schon. nun einfach ein <a href link gesetzt und schon erkannte der IE die *.ict als ict-Dokument und konnte die nicht anzeigen und gibt somit die auswahl ob man schließen oder speichern will.

leider muß meine datei weiterhin im documentroot verharren. habe dazu noch keine lösung gefunden.

danke Monty. genau das ist es. verdammt hätte man auch selber drauf kommen können.

hat einer vielleicht noch ne idee (um es noch interessanter zu gestalten) wie man den link dynamisch gestalten kann?

also eine variable mit dem pfad und der datei eingeben und im link dann diese variable auswerten und auf deren wert zu verweisen?

naja ich habe nen CGI script und da darüber stelle ich dann eine telnetverbindung her, führe nen befehl aus und zeige das ergebnis im browserfenster an also die gebildete Datei.

der nutzer kann aber ich sage mal verschiedene projekte auswählen mit dem das bashprogramm auf dem linuxserver läuft. somit ergibt sich immer eine andere datei. also <projektname>.ict

und dieser projectname steht in einer variablen und nun wäre es einfach den link auf die variable zu legen. also sowas wie <a href="../pfad/'$proj'.ict> oder sowas.

weißte was i meine?

sorry aber das mußte mir echt erklären. komme ich nicht ganz mit. javascript bin ich noch in den kinderschuhen.

du wählst aus der liste das Projekt.

du machst die telnet verbindung und

also sagen wir mal du schaffst es mir den pfad (download) zu übergeben (variable)

dann kann man mein neues fenster per javascript öffen der sourcecode sieht so aus das er komplett in javascript ist also

<html>

<head>

....

<javascript bereich anfang . . . >

document.write("<a href=" downloadpfad " >...</a>); << oder so ähnlich

<javascript bereich ende . . . >

...

</html>

dann hast du ein neues fenster mit genau einem link der den download startet auf die richtige datei... "ois klar" ??

mmh leider bekomme ich es irgendwie nicht hin den Wert der Variablen zu übergeben.

ich habe hier mal einen ausschnitt meines scriptes. vielleicht hilft das.

ich habe also nen popupmenü wo das projekt ausgewählt wird. das wird in der variable $apps gespeichert.

die variable $what ist der name des scriptes welches dann auf der linuxmaschine ausgeführt wird.

das ergebnis wird angezeigt, also der textinhalt der entstandenen Datei und darüber steht dann der link.

so wie es jetzt ist komme ich beim clicken in den ordner Daten und er zeigt mir die Dateien an welche sich dort befinden. dann kann ich die anclicken und downloaden.

wenn man den link dynamisieren könnte würde ich nicht erst in den ordner rein kommen sondern gleich die datei downloaden. ist nur die frage wie...

#! /usr/bin/perl -w

use CGI::Carp qw/fatalsToBrowser/;

use strict 'vars';

use CGI;

print $co->popup_menu (

-name => 'projekte',

-values => [ @x ],

- onChange=>'test1.options.value=0,test2.options.value=0',

);

my $apps = $co->param('projekte');

my $what = $co->param('what');

use Net::Telnet;

use strict;

my $user = "darfnix";

my $passw= "darfnix";

my $tn = new Net::Telnet (

Timeout => 50,

Prompt => '/BCati:>$/',

Port =>23,

);

$tn->open("x.x.x.x");

$tn->waitfor('/BCATI login[: ]*$/');

$tn->print("$user");

$tn->waitfor('/Password[: ]*$/');

$tn->print("$passw");

$tn->print("\n");

my $term = $tn->waitfor(Match => '/Terminal type\?/', Timeout => 1.0);

if ($term)

{$tn->print('vt100');}

$tn->waitfor('/BCati:>$/');

@lines = $tn->cmd("cd /usr/projekte/$what");

@lines = $tn->cmd("/usr/$apps $what");

print '<form action="../Daten/"$apps".ict"> <input type="submit" value="Download der angezeigten Daten"/></form>';

print "\n";

print '<form action="../Daten/"$apps".ict"> <input type="submit" value="Download der angezeigten Daten"/></form>';

Kann es sein, dass es so richtiger wäre?


print	'<form action="../Daten/'.$apps.'.ict"> <input type="submit" value="Download der angezeigten Daten"/></form>';

das problem ist einfach die Übergabe der Varible.

leider kann ich mit dem obigen sachen nichts anfangen... sry... evtl wer anderes...

vielleicht könnte man den pfad in ein cookie speichern per javascript rauslesen und cookie wieder löschen...

k.a. ob des funktioniert wär aber ne idee oder?

oder irgendwie das popup per cgi-skript aufrufen mit ...&adress="blabal"

evlt. sogar besser

hab da aber nicht so die ahnung...

edit: to slow...

Ha das is ja geil.

habe es schon mit den verschiedensten ausdrücken versucht...

cool klappt hervorragend.

Problem gelöst und klappt so wie i mir das vorgestellt habe. jetzt bin ich happy.

Danke an alle für eure tolle Hilfen und tipps.

mfg Bosi

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.