質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

11560閲覧

【JavaScript】input属性を使わずにファイルハンドルを得る方法はあるのか

nnahito

総合スコア2004

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2016/07/02 03:48

質問概要

<input type="file">を使わず、テキストエリアなどに、例えば、C:\test.pngを入力した時に、
このファイルをPHPに渡すことは出来るのかを知りたい。
可能であれば、その方法も。

質問詳細

普通であれば、<input type="file">を使い、ファイルを参照ボックスからファイルのパスなどを得ると思います。
または、最近であればドラッグ&ドロップなどでも得られるらしいですね。

しかし、もっと初歩的、古典的、原始的に、
直接ファイルパスを入力し、そのファイルを取得する事はできないのかと考えました。

JavaScriptのファイルの取得構造が分かっていないので、可能かどうかも分からいのですが、そのあたりをご教授いただけると嬉しいです。

例えば、Cのような言語だと、ファイルパスをCreateFile関数に投げれば、ファイルハンドルが生成され、そのハンドルでファイル操作が可能になります。
JSでも、同じことは可能なのでしょうか。
また、可能であれば、どのようにファイルハンドル(のようなもの?)を作成するのでしょうか。

ご存じの方がいらっしゃいましたら、ご教授いただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

それができるとwebページを開かせるだけで個人情報ファイルが抜き放題なので、ブラウザ上のjavascriptからは出来ないようになっています。

投稿2016/07/02 04:09

masaya_ohashi

総合スコア9206

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nnahito

2016/07/08 07:21

ありがとうございます、やはりダメですよね…
guest

0

ベストアンサー

セキュリティの関係で無理だろうとは、思ったのですがちょっと気になって調べてみました。
File APIという比較的新しい仕様を使えば、ファイル名以外の情報にもアクセスはできるようです。

JavaScriptでファイル操作!? File APIを使いこなそう という記事によると

従来のHTMLでは、<input>要素で選択したファイルの名前しか取得できなかった。しかし、File APIを使用することで、より多くの情報にアクセスできるようになった。これを利用すれば、(例えば)アップロード前にファイルの事前検証などが実施できるようになるだろう。

とのことなので、あれ?できるの?と思ったのですが、

File API入門
第1回 File APIとFileReader APIの利用

というページを見てみるとやはり、

HTML

1<input type="file"... />

となってるので、無理みたいですね。
でも、サーバーに送信せずにPCローカルでいろいろできることは増えてるみたいです。

サーバに送るのは、古い話ですが、fileフィールドを隠して、
JavaScriptでvalueを書き換えて、こっそりサブミットすればとか
チャットとかで話して実験もした記憶がありますが、やはりそんな簡単なことでは出来るはずもなく無理でしたね。

HTML

1<input type="file" value="" style="visibility: hidden;" />

投稿2016/07/02 04:39

Mr_Roboto

総合スコア2208

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nnahito

2016/07/08 07:21

ありがとうございます、やはりダメですよね… いろいろな情報提示、ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問