javascriptはfileコントロールの全パスを取得します.
1862 ワード
firefoxはフルパスの方式と原理を取得します.document.getElemenntById.files方法はユーザが選択したファイルのセットを取得するために用いられます.一般的には単一ファイルを選択します.次に、nsIDOMFileが提供する属性と方法を使用することができます.これは2つの属性と3つの方法を含みます.fileName:ユーザが選択したファイルの名前を取得するために、value値を直接取得した結果と同じです.fileSize:ユーザが選択したファイルのサイズを取得します.get AsBinary():ユーザが選択したファイルのバイナリデータを取得します.get AsData URL():ユーザが選択したファイルのパスを取得し、このパスは暗号化されています.現在はFireFoxでしか使用できません.get AsText():ユーザが選択したファイルの指定文字コードのテキストを得る.一つの説明が必要です.方法getAsData URLはユーザが選択したファイルのローカルパスを取得することができますが、このパスの文字列テキストはFireFoxによって暗号化されました.この暗号文はFireFoxにしか認識されません.他のブラウザは識別できません.つまり、暗号化されたパスを直接にタグのsrc属性に割り当てます.FireFoxでは直接画像を表示することができますが、IEではできません.
<html>
<head>
<title>get file input full pathtitle>
<script language='javascript'>
function getFullPath(obj)
{
if(obj)
{
if (window.navigator.userAgent.indexOf("MSIE")>=1) //ie
{
obj.select();
return document.selection.createRange().text;
}
else if(window.navigator.userAgent.indexOf("Firefox")>=1) //firefox
{
if(obj.files)
{
return obj.files.item(0).getAsDataURL();
}
return obj.value;
}
return obj.value;
}
}
</script>
<head>
<body>
<input type="file" onchange="document.getElementById('img').src=getFullPath(this);" />
<img id="img" />
</body>
</html>