人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【WEBプログラミング】
ブラウザから,ディレクトリを指定して,条件に当てはまる複数のファイルをアップロードする事が可能か知りたいです.
もしくは,ディレクトリを指定してそのディレクトリ内すべてのファイル(サブディレクトリを含む)をアップロードする事が可能かどうか知りたいです.
PHP,javascript,Ajaxなどの技術でできるとありがたいです.

■やりたい事の例
d:\image\フォルダ(ユーザローカル)の中から .jpgファイルを検索して
条件に当てはまったファイルをすべてアップロードする
もしくは,htmlのフォームのinput type fileにファイル名を入れた状態にする

■思っていること
・ZIPで固めてそれをアップロードしてもらい,サーバで展開し,条件の検索かけるのがスマートかと思うのですが,ユーザにZIPで固める手間をかけさせたくない.
・ブラウザから,ローカルのファイル検索をするのは,セキュリティ上よろしくなさそうなので,できない?

●質問者: Uプ
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:.jpg Ajax HTML JavaScript PHP
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● Kenz
●30ポイント

http://phpspot.org/blog/archives/2008/02/yui250flickrphp.html

これなんてどうでしょう

◎質問者からの返答

やりたいことの解決にはなってなさそうですが

これは面白そうなので

あとで試してみようと思います


2 ● pahoo
●40ポイント ベストアンサー

upuさんが懸念しているとおり、インターネットに接続しているブラウザがローカルディスクにアクセスすることは、セキュリティ上、好ましいことではありません。

クライアントサイド・プログラムを記述できる JavaScript と系列の ActiveScript(Flash)は、そのようなことができないようになっています。サーバサイド・プログラムである PHP なども、ローカルのドライブにはアクセスできません。

とはいえ、どうしてもやりたいということであれば、方法は2つ考えられます。いずれもアップロード先でFTPサーバが動いていることが前提です。


1.VBScript(というよりWSH)を利用する

Windows + IE 限定の方法です。

VBScriptでファイル名検索を行い、FTPスクリプトを生成します。

生成したFTPスクリプトを VBScript(WSH) から下記のように実行して、目的のファイルをアップロードすることができます。

wshshell = new ActiveXObject("WScript.Shell");
wshshell.run("ftp -s スクリプト");

ZIPで圧縮したいなら、検索とftpアップロードの間で zip.exe で圧縮するスクリプトを書いてやればいいでしょう。


2.サーバ間通信を行う

サーバ側の PHP からローカルドライブにアクセスすることができませんが、ローカル側に Apache + PHP の環境を用意してやれば、ローカルのファイル検索ができるようになります。(PHPではなくRubyでも構いません)

PHP の opendir 関数を使うと、ファイル検索ができます。

次に、FTP 関数 を使って FTP アップロードします。

◎質問者からの返答

1.

アップロード者の負担(技術力)が必要そうですね

あと,OSとブラウザが固定されてしまうのも,望ましくないですね

2.

これも,アップロード者のPCに環境を用意しなければ使えませんよね


3 ● hijk05
●10ポイント

>・ブラウザから,ローカルのファイル検索をするのは,セキュリティ上よろしくなさそうなので,できない?

FlashやActiveXはできますね。

Flashで作るのが今は一般的なのでは?

◎質問者からの返答

FlashやActiveXだとできるんですか.

検索してみても,それらしい物を見つけることができません…(;;

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ