プロが教える店舗&オフィスのセキュリティ対策術

はじめまして、質問します。
webブラウザからローカルファイルの読み込みを行いたいのですが、
セキュリティーの問題でアクセスを拒否されました。
その回避法として、FileAPIによって
htmlのinput要素かドラッグアンドドロップを用いて
ローカルファイルを読み込めることが分かりました。

しかし、私がやりたいことは
絶対パスでローカルファイルを読み込むことです。

そのようなことは可能でしょうか?
上記の方法だとinputからフォルダをたどってファイルを選択するので
原理的には可能なような気がするのですが・・・・

言語はjavascriptです。
よろしくお願いします。

A 回答 (3件)

>その回避法として、FileAPIによって


>htmlのinput要素かドラッグアンドドロップを用いて
>ローカルファイルを読み込めることが分かりました。

>上記の方法だとinputからフォルダをたどってファイルを選択するので
>原理的には可能なような気がするのですが・・・・

根本的な部分で勘違いをされている気がします。ドラッグ&ドロップで渡されるのはファイルのパスなどではありません。これはFileListオブジェクトという専用のオブジェクトで、その中に個々のファイルに関するFileオブジェクトが保管されています。このFileオブジェクトをFileReaderなどに渡すことでその内容を読み取ったり出来る仕組みになっています。

ただし、ここで勘違いしてはいけないのですが、このFileオブジェクトには、ファイルのパス情報は含まれていないのです。あるのはファイル名の情報だけ。そのファイルがどこにあるかといったことはJavaScript側からは隠蔽されており、スクリプトからタッチできません。

つまりJavaScriptでは、「パスによるファイルの指定」は過去も現在も首尾一貫して禁止されており、不可能なのです。

ドラッグ&ドロップは、ユーザーの能動的な動作により起こるイベントです。つまり、ユーザーが自分で「このファイルをアップロードしよう」といった具合に操作した結果の行動です。これに対し、「ファイルのパスによるファイルアクセス」は、ユーザー不在であり、プログラムが自分で勝手にファイルにアクセスできることを意味します。両者は全く違います。
    • good
    • 4
この回答へのお礼

とても詳しくわかりやすい説明をありがとうございます!
勘違いしている部分も理解できて、とても助かりました。
協力ありがとうございました。

お礼日時:2013/01/23 13:20

Cドライブをドラッグアンドドロップすればいい


それかローカルで動かすなら可能
もしくはスマホなら実質SDカードの絶対パスを指定できたはず
    • good
    • 2
この回答へのお礼

そのようの方法もあるのですね!
参考になりました。
ありがとうございました。

お礼日時:2013/01/23 13:18

こんにちは。



同じくセキュリティーの問題で無理です。
それが出来るといろいろ悪意のあるコードが書けてしまいます。
    • good
    • 0
この回答へのお礼

やはりそうですか・・・
ほかの方法で考えてみます。
ありがとうございました!

お礼日時:2013/01/23 13:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!