Zum Inhalt springen

Download mit javascript


Bosi

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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>

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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" ??

Link zu diesem Kommentar
Auf anderen Seiten teilen

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";

Link zu diesem Kommentar
Auf anderen Seiten teilen

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>';

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...