JS-Funktion für Pfadname
Brigitte Kunz
- javascript
Hallo.
Folgendes Frage:
Gibt es eine JS-Funktion, welche mir den Pfadnamen einer über den Input-Button/Typ=File ausgewählten Datei zurückliefert?
Problem:
Über einen Input-Button vom Typ 'File' wird ein Bild ausgewählt, das hochgeladen werden soll. (z.B. Bild des Monats etc.)
In der Maske ist das alte 'Bild des Monats' vorgeblendet.
Nach der Auswahl soll dieses vorgeblendete Bild durch das neue Bild ersetzt werden:
Die folgende JS-Funktion wird aufgerufen durch das 'onChange'-Event des Input-Buttons:
function changeBild()
{
var srcName;
var bildneu_value;
bildneu_value = document.getElementsByName("bild_neu")[0].value;
document.getElementsByName("akt_bild")[0].src = bildneu_value;
srcName = document.getElementsByName("akt_bild")[0].src;
alert("neuer srcName: " + srcName);
}
Im IE funktioniert dies auch reibungslos, aber Firefox und Opera machen hier nicht mit: Als Ursache habe ich herausgefunden, daß das value-Atribut 'document.getElementsByName("bild_neu")[0].value' nur den Bildnamen <bild.jpg> liefert, ohne den zugehörigen Pfadnamen.
So wird dann auch das src-Attribut auf den Wert 'http//localhost/bild.jpg' gesetzt. Dort findet sich das gewünschte Bild natürlich nicht.
Wenn ich händisch eine Datei zuweise, die direkt unter localhost steht, funktioniert es (natürlich).
Mit einer Funktion, die mir den Pfadnamen liefert, wäre das Problem behoben. Nur leider: Ich finde keine....
Nebenbei noch: In Opera wird im Bildbereich überhaupt nichts mehr angezeigt, Firefox zeigt dann wenigstens noch einen leeren Rahmen.
Für jede Hilfe schon mal vielen Dank
Brigitte Kunz
Hi,
Gibt es eine JS-Funktion, welche mir den Pfadnamen einer über den Input-Button/Typ=File ausgewählten Datei zurückliefert?
nein. Aus Sicherheitsgründen stellen die meisten Browser gerade mal noch den Dateinamen zur Verfügung.
Cheatah
Hi,
»» Gibt es eine JS-Funktion, welche mir den Pfadnamen einer über den Input-Button/Typ=File ausgewählten Datei zurückliefert?
nein. Aus Sicherheitsgründen stellen die meisten Browser gerade mal noch den Dateinamen zur Verfügung.
Cheatah
Vielen Dank.
Brigitte
daß das value-Atribut 'document.getElementsByName("bild_neu")[0].value' nur den Bildnamen <bild.jpg> liefert, ohne den zugehörigen Pfadnamen.
Das ist eine Sicherheitsbeschränkung, die man m.W. nicht umgehen kann.
Wenn das ginge, müsstest du aus dem Pfad eine gültige file-Adresse machen:
file://localhost/c:/pfad/zur/datei.jpg usw.
Das heißt auch / statt .
Aber m.W. haben einige Browser noch eine weitere Sicherheitsbeschränkung: Aus dem http-Kontext lassen sich keine Bilder aus dem file-Kontext einbinden.
Ich fürchte, so kommst du nicht weiter. Was hast du denn eigentlich vor?
Mathias
»» daß das value-Atribut 'document.getElementsByName("bild_neu")[0].value' nur den Bildnamen <bild.jpg> liefert, ohne den zugehörigen Pfadnamen.
Das ist eine Sicherheitsbeschränkung, die man m.W. nicht umgehen kann.
Wenn das ginge, müsstest du aus dem Pfad eine gültige file-Adresse machen:
file://localhost/c:/pfad/zur/datei.jpg usw.
Das heißt auch / statt .Aber m.W. haben einige Browser noch eine weitere Sicherheitsbeschränkung: Aus dem http-Kontext lassen sich keine Bilder aus dem file-Kontext einbinden.
Ich fürchte, so kommst du nicht weiter. Was hast du denn eigentlich vor?
Mathias
Hallo Mathias.
Vielen Dank.
Wie gesagt: Nach dem Auswählen des Bildes soll dies sofort in der Maske angezeigt werden, ohne daß diese neu aufgebaut wird. Somit hat man eine Kontrolle, ob wirklich das gewünschte Bild ausgewählt wurde, bevor es auf dem Server gespeichert wird. Zugegeben, nicht lebenswichtig....
Mit den Pfadnamen scheint der IE also nicht so pingelig zu sein wie andere Browser: Er generiert den ausgewählten Pfad selbst auf 'file///C:/etc.' , mit Umstellung des \ auf / und Leerzeichen auf %20 etc.
Brigitte