ファイルのアップロードができるホームページを作成しているのですが、ファイル名称を入力フィールドにしているため、適当なファイルが入れられた場合ファイルの存在チェックを行わなくてはなりません。
HTMLかJavaScriptでクライアント側のPC上のファイルの存在確認を行うのは可能でしょうか?
何かよい方法があったら教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

Windows系で動作する IE限定となりますが 可能です。


手前味噌ですが、私のサイトでサンプルを公開しています。
ご参考ください。

参考URL:http://www.hf.rim.or.jp/~iam387/script/sam_imgds …
    • good
    • 0

それができちゃうと世間を騒がす「セキュリティホール」ってやつになっちゃうんですね。


ネットワークとはなかなか痒いところに手が届かないってことで。
    • good
    • 0

<input type="file">


をお使いになるんでしたら、しなくても良いのでは?

またまた、答えになってないですが。。
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qファイルの有無を調べる

毎日アップロードされる、ファイル名に日付が付いた画像をブルダウンメニューから日付を選択して表示するといったスクリプトを作っています。
スクリプトはほぼ完成したのですが、一部画像が欠落している日もあるのでその日付を自動であらかじめ調べるようにしたいと思っています。
そこでお尋ねしたいのですが、
HTTPサーバ上で指定したアドレスのファイル(例:http://www.exdomain.com/example.jpg)があるかどうか調べる方法はありますか。

よろしくお願いします。

Aベストアンサー

 あります。参考URLの第2章を読んでみてください。非常に丁寧な実例付き解説があります。ただし,cgiやPHPなど,サーバーサイドで動くスクリプトが使えるのであれば,そっちをお勧めします。

参考URL:http://www.openspc2.org/JavaScript/Ajax/Ajax_study/index.html

QJavaScriptでファイルチェック

JavaScriptで、ローカルPCのファイル存在チェックってできますか?
もし、ご存知の方が居ましたら宜しくお願いします。

Aベストアンサー

こんにちはb-takedaさん、xruzです。

セキュリティの関係でできません。
但し、cookieは可能ですよ

Qwebブラウザからローカルファイルの読み込み

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

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

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

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

Aベストアンサー

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

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

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

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

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

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

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

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

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

Qjavascript サーバーファイル有無チェック

社員番号を入力させその番号に応じたページにジャンプするような、
下記のような簡単なサイトを作りました。

var no = document.no.txtb.value;
var fname = no + ".html";
location.href = no;
(抜粋)

ここで、no + ".html" が存在しなければ Alert するチェックを追加したいのですが、
javascriptでこういった存在チェックは可能でしょうか?

携帯電話(ガラケー)からアクセスするようなサイトなので、
高度な仕組みは用いることができません。

よろしくお願いします。

Aベストアンサー

こんにちは。

JavaScriptでは不可能です。
Ajaxを使えば擬似的には出来ますが、ガラケーでは動かせませんので実現不可能です。

QJavaScriptde途中で、「exit」するには?

function kensaku(){
s_data = document.kaiin_form.input_name.value;

if(!s_data){ alert("キーワードを入れて下さい!"); }

if(s_data != dumy){ ...... }
for(i=st_no;i<=n;i++){
......省略.................;
.......省略................}
}

----------------------------------
3行目で表示されたアラートをOKで閉じても、4行目以下が実行されてしまいます。
3行目でexitするにはどうすれば良いでしょうか?

Aベストアンサー

>関数(kensaku())からは抜けられませんでした。
そうですね、勘違いしていました、f(^^;
すみません。
if(!s_data){
alert("キーワードを入れて下さい!");
return;
}
ですね。

Qブラウザからファイルパスを取得するには

現在Webブラウザからローカルにあるファイルのパスを取得したいと
考えています。

イメージとしては、アップロードのときのように、参照ボタンを押すと
ダイアログが開き、そこからファイルを選択すればそのファイルのパスが
取得できるようなことを考えています。
ファイルアップロード時にファイルのパスを取得できることは知っているのですが、アップロード出来るサイズの制限を越えるものもあり、
できるだけアップロード処理を行わずに、ファイルのパスだけを取得できる
方法がないか探しております。

ご存知の方がいらっしゃいましたら、教えていただければ幸いです。

よろしくお願いいたします。

Aベストアンサー

単純に
enctype="multipart/form-data"
を指定しなければ
enctype="application/x-www-form-urlencoded"デフォルトが適用されるので、
<input type="file" name="filePath">
とでもしたら良かったと思います。
 たとえば、ローカルにある画像を使ってカレンダーを印刷するCGIを作成したときは、そのようにしたと記憶してます。

QHTMLフォームのSELECTの幅を一定にするためには?

HTMLフォームのSELECTの幅を一定にするためにはどのようにすれば
いいのでしょうか?

CSS等で設定できるとありがたいのですが、やり方がわかりません。

Aベストアンサー

<select style="width: 200px">

Qhtmlのfileタグに自動で値を入れる方法

htmlのタグでいって
<input type="file">を用いてファイルをサーバーにアップロードしたいと思っています。で、このとき、ファイル名は任意に選べるのではなく固定で送信したいと思っています。

すなわち、HTMLを読み込んだ時点で、fileのテキストボックスにファイルパスが埋め込まれているか、JavaScriptで、ファイルパスを自動入力するようにしたいと思っています。

最終的には、form内のオブジェクトをすべて非表示にし、onload時にsubmitするような形にしたいと思っています。いろいろ事情があって苦肉の策になっています…。

とりあえず(だめだとは思っていたのですが)
<input type="file" value="ファイルパス" name="filepath">
と直書きにしてみたり
document.all.filepath.value = "ファイルパス";
などとしてみたりしましたがだめでした…。
W3C勧告の使用上はvalueでファイルパスを指定できるようになっているようなのですが、現在の一般的なブラウザでは禁止されているようですね。

このような場合、何らかの方法でfileにファイルパスを自動入力することはできますでしょうか?
もしできない場合、何らかの方法で実現する方法はありますでしょうか?よろしくお願いします。

ちなみに実現できればいい環境は
WinXP環境のIE6です。言語はクライアント言語はJavaScriptのみで、という条件付です。
できないかもしれないのですが、こういうのって必要になるときもあるよなーなどと思っており、もしかしたら解決方法があるかもしれないと思い質問しました。よろしくお願いします。

htmlのタグでいって
<input type="file">を用いてファイルをサーバーにアップロードしたいと思っています。で、このとき、ファイル名は任意に選べるのではなく固定で送信したいと思っています。

すなわち、HTMLを読み込んだ時点で、fileのテキストボックスにファイルパスが埋め込まれているか、JavaScriptで、ファイルパスを自動入力するようにしたいと思っています。

最終的には、form内のオブジェクトをすべて非表示にし、onload時にsubmitするような形にしたいと思っています。いろいろ事情があって苦肉...続きを読む

Aベストアンサー

やっぱ無理じゃないでしょうか。
なにか裏ワザ的な方法で一時的にできたとしても、いつか直されるかもしれないのでおいそれとは使えないし。

>W3C勧告の使用上はvalueでファイルパスを指定できるようになっている
→参考URL 「ユーザが明示的に送信を求めたファイル以外のものは送ってはいけない」とあります。

参考URL:http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/appendix/notes.html#forms-security

Qhtml上で、バッチやexeファイルの起動をしたい

わけあって、学校(養護学校)初心者向けにhtmlでメニューを作っています。
さて、スタートボタンやディスクトップにショートカットを使わず、htmlの中からバッチファイルやexeファイルを起動できるでしょうか?

もし可能ならば、教えてください。OSはWindows XPで起動したいファイルはexeファイルとバッチファイルです。
よろしくお願いします。

Aベストアンサー

<html><head></head>
<body>
<a href="file:///c:/windows/system32/calc.exe">電卓</a>
</body>
</html>

QSELECTで1件のみ取得するには?

こんにちわ。
いまORACLE9iを使用している者です。

ACCESSでは
SELECT TOP 1 項目名 FROM テーブル名
ORDER BY 項目名;
で並べ替えたデータ群のうち,先頭の1件だけを
取ることができますが,
ORACLEでそのような機能(SQL)はあるでしょうか?
教えてください。
よろしくお願いします。

Aベストアンサー

order by と rownum を併用する場合は注意が必要です。

[tbl01]
cola | colb
------------
1000 | aaaa
1001 | bbbb

というデータがある場合、
select cola from tbl01 where rownum < 1 order by cola desc;
とすると、「1001」ではなく、「1000」が返されます。
これは、order by の前に rownum < 1 が適用されてしまうからです。

解決するには、
select aaa from (select cola aaa from tbl01 order by cola desc) where rownum = 1;
とすれば良いです。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報