2012-01-21 4 views
2

私のWebページでファイルフィールドを使用しています。私は、ファイルフィールドの既定値を表示する必要があります。私は次のコードを使用しました。ファイルのフィールド値の表示にエラーがあります

<input name="" type="file" value="test" /> 

しかし、動作しません。どうやってやるの?

+0

これは許可されていません。値を設定するだけのテキストボックスではありません。 – mrtsherman

+0

ファイルフィールドの値を設定しました。しかしそれは表示されませんでした。 – designersvsoft

答えて

2

できません。ファイルフィールドはロックされ、セキュリティ対策としてのデフォルト設定を防止します。デフォルト値を設定することができれば、

<input type="file" name="hackme" value="/etc/passwd" /> 

を持っており、クライアントマシンから任意のファイルを盗むために些細なことと思います。

+0

真。 w3.orgは "ユーザーエージェントは最初のファイル名としてvalue属性の値を使用するかもしれない"と答えている - 私は自分の答えにリンクを与えている – Ninja

1

ファイル入力フィールドにはデフォルト値を設定することはできません。期間。それはセキュリティ問題です。それはできません。ごめんなさい。


少し研究を行った後、HTML 5でのファイル入力のvalue属性を変更した表示されます。

入力を。値[=値]

フォームコントロールの現在の値を返します。

値を変更するために設定できます。

コントロールがファイルアップロードコントロールである場合、空の文字列以外の値に設定されている場合は、INVALID_STATE_ERR例外がスローされます。

ファイル名

取得には、それは文字列を返す必要があります "C:\ fakepath \" 選択されたファイルのリストの最初のファイルのファイル名が続きますリストが空の場合は空の文字列を返します。 設定すると、新しい値が空文字列の場合、選択したファイルのリストを空にする必要があります。それ以外の場合は、INVALID_STATE_ERR例外をスローする必要があります。

だから、W3Cは、 "セキュリティ問題" 推論を行っそしてとにかくHTML5でその動作を変更しました表示されます。私はあなたがファイル入力コントロールの値を事前に定義する機能を見ることはないと思います。

0

w3.orgでは、「ユーザーエージェントは、value属性の値を初期ファイル名として使用することがあります」と述べています。しかし、私が知る限り、ほとんどのブラウザーはこれを証券化手段として認めません。あなたはここにこのことについて読むことができます:http://www.w3.org/TR/html4/interact/forms.html#h-17.4.1

1

をHTML 4.01仕様はそれだけでことができ、ブラウザは一般的に行わないで「ユーザーエージェントは、最初のファイル名としてvalue属性の値を使用することができます」と述べているが、それ。過去のブラウザーの中には、そのようにしてユーザーにリスクについて警告した実装がありましたが、それは数年前のことでした。

セキュリティ上の主な問題は、ユーザーが視覚的に気付かれないか、隠されている可能性があるため、フィールドに気付かないことでした。しかし、これは実際にはファイルアップロードのオリジナルデザインであるRFC 1867で予期されていました。「HTML翻訳エージェントは、<INPUT TYPE=file VALUE="yyyy">で示唆されるデフォルトのファイル名を確認することが期待されています。」ブラウザベンダーは、 (たとえファイル名の構文がプラットフォームに依存するとしても)デフォルトのファイル名を設定することのかなり限定された有用性を考慮すれば十分です。

関連する問題