Werzuweisung eines Input=File
Armin
- dhtml
0 Curt0 Armin0 Stefan Falz0 Curt0 Ed X
0 Armin0 Ed X
0 Klaus Mock
Hallo zusammen,
weiß jemand zufällig wie man einer File-Input-Box
eine neue Datei dynamisch zuweist?
Bei einer normalen Input-Box geht das ja so..
<input size='50' Value='Der Alte Text' name='XXX'>
XXX.value="Ein neuer Text"
<input type='File' name='XXX'>
Wie weise ich diesem Input-Feld eine Datei dynamisch zu??
Der Gag bei der Sache ist das ich mit der Value-Eigenschaft auf den Dateinamen zugreifen kann..aber keine anderen dynamisch reinschreiben kann...
Hi Armin,
Der Gag bei der Sache ist das ich mit der Value-Eigenschaft auf den Dateinamen zugreifen kann..aber keine anderen dynamisch reinschreiben kann...
ich habs zwar noch nie ausprobiert, denke aber das geht so nicht aus folgendem Grund: Nachdem du auf submit gedrückt hast wird mein JavaScript aktiv und ändert das file auf c:\windows\regedit.exe und schickt das ganze anschliessend los.
gruss
Curt
Hallo,
Nachdem das File-Input Feld auf der Seite erscheint..
möchte einen Dateinamen eintragen. Ich erteile keine Submit-Auftrag..Alles was ich will ist einen Dateinamen eintragen..Man könnte meinen das sei eigentlich nicht schwer..aber wie? Gibt es vielleicht eine andere Eigenschaft der man den Dateinamen zuweisen kann..wie z.B. XXX.filename='C:\Verzeichnis\XY.EXE' ?
Ich frage mich halt noch immer wieso ich mit
XXX.Value den Dateinamen auslesen kann umgekehrt
aber nicht mit XXX.Value="Dateiname" etwas eintragen kann..
Wer kann mir helfen...??
Hallo Curt,
Nachdem das File-Input Feld auf der Seite erscheint..
möchte einen Dateinamen eintragen. Ich erteile keine Submit-Auftrag..Alles was ich will ist einen Dateinamen eintragen..Man könnte meinen das sei eigentlich nicht schwer..aber wie? Gibt es vielleicht eine andere Eigenschaft der man den Dateinamen zuweisen kann..wie z.B. XXX.filename='C:\Verzeichnis\XY.EXE' ?
Ich frage mich halt noch immer wieso ich mit
XXX.Value den Dateinamen auslesen kann umgekehrt
aber nicht mit XXX.Value="Dateiname" etwas eintragen kann..
IMHO ist das im entsprechenden RFC (1867 Formbased Fileupload) aus
Sicherheitstechnischen Gründen so eingetragen. Ist ja auch logisch.
Wenn das gehen würde, könntest du jede beliebige Datei der Clients
übertragen und das willst du doch wohl nicht, oder !?
Siehe: http://community.roxen.com/developers/idocs/rfc/rfc1867.html
Absatz 8: Security Considerations
HTH, Stefan
Hi Armin
Nachdem das File-Input Feld auf der Seite erscheint..
möchte einen Dateinamen eintragen. Ich erteile keine Submit-Auftrag..Alles was ich will ist einen Dateinamen eintragen..Man könnte meinen das sei eigentlich nicht schwer..aber wie? Gibt es vielleicht eine andere Eigenschaft der man den Dateinamen zuweisen kann..wie z.B. XXX.filename='C:\Verzeichnis\XY.EXE' ?
Ob du keinen erteilen willst spielt doch keine Rolle, grundsätzlich könntest du aber und dann könnte man beliebige files erhalten solange man nur den pfad kennt.
Ich frage mich halt noch immer wieso ich mit
XXX.Value den Dateinamen auslesen kann umgekehrt
aber nicht mit XXX.Value="Dateiname" etwas eintragen kann..
Wer kann mir helfen...??
Ich habs nochmal nachgeschlagen um sicher zu sein.
XXX.value ist readonly, also keine Chance.
gruss
Curt
Hallo Armin,
Ich frage mich halt noch immer wieso ich mit
XXX.Value den Dateinamen auslesen kann umgekehrt
aber nicht mit XXX.Value="Dateiname" etwas eintragen kann..
Warum du nichts schreiben kann, haben wir ja nun geklärt. Wrum kann man es nun aber auslesen?
Weil es egal ist ob man den Filename mit JavaScript oder einem CGI-Script ausliest. Und da es per CGI grundsätzlich möglich sein muss, um bspw. einen Dateiupload zu machen, warum sollte es mit JavaScript dann nicht möglich sein. Stell dir vor, User X bietet dir ein File zu Upload per HTTP an. Auf seinem Rechner sieht es aber aus wie bei mir auf dem Schreibtisch :-). Somit heißt seine Datei dann "Müßli riegel.k0xx". Ich würde mal diagnostizieren, für den Server ist das schwer verdaulich. Sowas kannst Du mit JavaScript abfangen, und den User X bitten, die Datei umzubenennen.
Es gibt natürlich noch andere Möglichkeiten.
Bye Ed X
Hi,
Also der Value-Wert ist ganz schön hartnäckig..
na gut lassen wir das beiseite..könnt mir jm. sagen
wie man sowas ähnliches wie den Browse-Button für ein normales Texteingabefeld erstellt?
Warum ich unbedingt den Value-Wert bei einem
"file"-Input-Feld ändern wollte war nämlich folgender:
ich möchte eigentlich nur den Namen der Datei...sonst
aber nichts weiter mit ihr anstellen..Und dem Nutzer die Eingabe des Dateinamens komfortable über einen
Browse-Button ermöglichen...klappt auch prima mit
dem type=file aber leider will der User später wieder
auf diesen Dateinamen zurückgreifen um ihn evtl. leicht
oder komplett abzuändern...dafür will ich den Namen dann wieder in dieses Feld eintragen..eben in den value-Wert..
gibt es sonst noch irgendeine-Möglichkeit einen Browse-Button zu erzeugen und diesen irgendwie mit einem "normalen" Eingabefeld zu verknüpfen?
Danke schon mal alleine für's lesen..
Hi Armin,
na gut lassen wir das beiseite..könnt mir jm. sagen
wie man sowas ähnliches wie den Browse-Button für ein normales Texteingabefeld erstellt?
nein, das sollte IMHO auch nicht möglich sein
Warum ich unbedingt den Value-Wert bei einem
"file"-Input-Feld ändern wollte war nämlich folgender:
ich möchte eigentlich nur den Namen der Datei...sonst
aber nichts weiter mit ihr anstellen..
und dafür Type = file?, mit Äpfeln nach Birnen schmeißen, oder wie...
was machst Du denn mit dem mitgesendeten File????? Mal eben den Traffic auf deiner Webseite in die Höhe treiben?
auf diesen Dateinamen zurückgreifen um ihn evtl. leicht
oder komplett abzuändern...dafür will ich den Namen dann wieder in dieses Feld eintragen..eben in den value-Wert..
gibt es sonst noch irgendeine-Möglichkeit einen Browse-Button zu erzeugen und diesen irgendwie mit einem "normalen" Eingabefeld zu verknüpfen?
Zur Verständnisklärung: Du willst nur den Namen der Datei haben, und willst dem Nutzer die eingabe ersparen und desahlb einen Browse-Button anbieten. Das ist ein Fall von mitgedacht und deshalb löblich.
Ich würde das mit 2 Formularen (die unterschiedliche Namen haben) machen. Dann würde ich den Wert des einen Formulars(welches nur type= file enthält) einlesen und in das andere Formular übergeben.
Hier etwas codezum Verständnis:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Untitled</title>
<script language="JavaScript" type="text/javascript">
function uebertragung()
{
document.formularZumSenden.dateiname.value = document.nurBrowsen.dateiname.value;
}
</script>
</head>
<body>
<form id="nurBrowsen" name="nurBrowsen" action="egal">
<input type="file" name="dateiname">
</form><br>
<a href="javascript:uebertragung()">setIt</a><br>
<form id="formularZumSenden" name="formularZumSenden" action="hiermitaction">
<input type="text" name="dateiname" size="60" onfocus="uebertragung()">
</form>
</body>
</html>
Das onfocus ist dort,weil onchange in type=file nicht funktioniert :-(.
Ich weiß, damit hast Du zwei Felder, aber was besseres fällt mir nicht ein.
Bye Ed X
Moin Ed,
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Untitled</title>
<script language="JavaScript" type="text/javascript">
function uebertragung()
{
document.formularZumSenden.dateiname.value = document.nurBrowsen.dateiname.value;
}
</script>
</head>
<body>
<form id="nurBrowsen" name="nurBrowsen" action="egal">
<input type="file" name="dateiname">
</form><br>
<a href="javascript:uebertragung()">setIt</a><br>
<form id="formularZumSenden" name="formularZumSenden" action="hiermitaction">
<input type="text" name="dateiname" size="60" onfocus="uebertragung()">
</form>
</body>
</html>
Das onfocus ist dort,weil onchange in type=file nicht funktioniert :-(.
Ich weiß, damit hast Du zwei Felder, aber was besseres fällt mir nicht ein.
... guter Lösungsansatz soweit; um nicht zwei Felder zu haben, gäbe es doch noch die Möglichkeit, im zweiten Formular
<input type="hidden" name="dateiname" size="60">
zu verwenden. Dann kann man natürlich onfocus nicht mehr verwenden, da man unsichtbare Felder nun mal nicht aktivieren kann... Dafür müsste also noch ein Ersatz gefunden werden.
Mit passendem Layout sollte es sich auch machen lassen, das ganze _optisch_ wie ein Formular aussehen zu lassen.
Glück auf
Dirk
Hallo,
weiß jemand zufällig wie man einer File-Input-Box
eine neue Datei dynamisch zuweist?
Ich hab da mal etwas bei Netscape gelesen.
http://developer.netscape.com:80/docs/manuals/communicator/jssec/index.htm
Unter 'Using Expanded Privileges' findest Du dort die zur Verfügung stehenden Möglichkeiten.
mit dem Privileg 'UniversalFileRead' kannst Du dann auch file-uploads setzen.
Aber...
Grüße
Klaus