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

現在、PHPでWEB用プログラムを作成しています。
「自端末とサーバーの間でファイルのUPLOAD/DOWNLOADをブラウザで行いたい」と言われ、最初はHTTP通信で充分だと思い、そう作っていたのですが、お客さんに「フォルダごとのUPLOAD/DOWNLOADをしたいので、FTP通信で作り直してほしい」と言われました。
そこで作り直してみたところ、FTP通信でも、ファイル指定ではできるのですが、フォルダ指定で実装する方法がどうしてもわかりません。
自端末のフォルダの中身を知る手段がないのではと思っています。(PHPはサーバー側のみにあります)

サーバー側にあるPHPで、自端末のフォルダを指定したフォルダごとのUPLOAD/DOWNLOADは可能なのでしょうか。もし可能でしたら、実装例をお教えいただけますと嬉しいです。
ちなみに、ブラウザ固有の機能(アドレス窓に「ftp://xxx.xxx.co.jp/」と打ち込んで接続)を使う方法は、MacでできないためNGだそうです。

また、もしPHPのデフォルト機能で不可能な場合、「実装するにはこうすればいい(例:有料のプログラムをインストールするなど)」というような策がございましたらお教えください。

●質問者: golbeza
●カテゴリ:コンピュータ
✍キーワード:Download FTP HTTP Mac NG
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● upride
●150ポイント

http://google.co.jp/

Google

フォルダ指定でアップロードがPHPのみで実装できるなら・・

PHPスクリプトだけのFTPクライアントソフトが出来てしまいます・・

多分これが巷にないということは・・(PHP5なら出来る?)

・・・が似たようなことの実装経験はあります

お役に立つやらですが

私の場合クライアントのことはクライアントサイドでってことで

JavascriptとVBscript(というかWSH)で実装しました

ファイル存在チェック、ファイルサイズ、ファイルの拡張子指定、

何階層下まで掘るとかファイル数の制限とか

どう考えてもクライアントサイドじゃないと出来ないと思われたからです

私の場合イントラ内での稼動なのでブラウザはIEで固定

IEの「信頼済みサイト」でWSH動作OKなど

クライアント環境ががちがちなのでよかったのですが、

クロスプラットフォーム対応では・・うーんきついかも

(MacってWSH入ってるんですか?)

◎質問者からの返答

お答えありがとうございます。

そうですよね、私もクライアント側で動くプログラムがないとダメなのではないかと思っています。

クライアント環境は全然制限なしなので、クライアント側で実装となると、それも困った点になります。


2 ● kn1967
●150ポイント

http://www.hatena.ne.jp/

はてな

-----

1.FTP通信用のスクリプトを作ってクライアントに配布する。

あるいは、

2.JAVA(知っているかも知れませんがJAVAScritとは違います)などを使ってブラウザ上から使えるプログラムを作ってページ上に貼り付けておく。

といった方法になろうかと思われます。

-----

MacOS.Xであれば、ブラウザを使わずとも、コマンドラインでFTPコマンドを使うという手が使えますから、1がお手軽だと思います。

素直に「簡単に作ることは出来ないので、LZHやZIPといった圧縮を行って1ファイルにしたものを転送」するように提案するというのも手です。

◎質問者からの返答

お答えありがとうございます。

質問以前から今までずっといろいろと考えているのですが、PHP+HTMLでは実装不可能ですよね。

・・・と思うのですが、お客様はできると思っているようで何度「無理です」と言っても信じてくれません。どう説明すればよいのか悩んでいます。

1の「FTP通信用のスクリプト」というのは、どういうものになりますでしょうか。

例えばperlやPHPなどをクライアント端末に入れて、クライアント端末のスクリプトを動かすことによってアップロードする形になりますでしょうか。

(それなら普通にFTPツールを使ってくれればいいだけの気が・・・とか思わなくもない)

圧縮ファイルのダウンロードについては、提案したのですが無視されました・・・


3 ● kn1967
●150ポイント

http://homepage.mac.com/tkurita/scriptfactory/ScriptGraveyard/

2回目の回答を書いてしまいますが、お許しを、、、

回答1のupride さんのおっしゃるWindowsShellScriptはWindowsを操作するためのものであり、Macの場合はAppleScriptというものが実装されています。

上記URLのようにAppleScriptを使ってFTPを使う方法はネットでも各種紹介されていますので、それらを手直しして、ユーザーに配布すればよろしいかと思います。

-----

>「無理です」と言っても信じてくれません。

>普通にFTPツールを使ってくれればいいだけの気が・・・

ユーザー自身も社内で任されて、あなたの所に依頼している。 といった、相手の立場も考えてみてください。

無理だと言われて、それをそのまま上司に伝えて上司を納得させられると思われますか?

例えば、「何事も専用のソフトが必要なんです。ブラウザは1つのファイルをやり取りすることしか出来ないので、一度に遅れるのは1つになります。大量に一度に送りたい場合はFTPソフトを使う必要があります」

「FTPを行うソフトを1から作るのはコスト的に見合いませんから付属のものを使っていただくか、もしくは、圧縮して送るように考えてみてください」というように、相手の方が周囲に説明しやすいように返事をすることを考えてみてください。

相手の方の立場を理解した上で返事を出来るようになるには経験が必要ですが、それを身に付けるのも一流への道ですから、これを機会に周囲の人にも相談しながら、文句をいろいろ考えてみてください。

◎質問者からの返答

重ねてのお答えありがとうございます。

こちらはクライアントに配布する形になりますね。

>ユーザー自身も社内で任されて、あなたの所に依頼している。 といった、相手の立場も考えてみてください。

>無理だと言われて、それをそのまま上司に伝えて上司を納得させられると思われますか?

ご指摘ありがとうございます。一応、以前「ブラウザを利用するということで、httpプロトコルがベースとなるので複数ファイルをアップロードすることはできますがディレクトリ単位でのアップロードはできないのではないかと思います」「圧縮する形では無理でしょうか」など、と提案してみたのですが、「ftpで接続すればディレクトリ単位でのアップロードもできるはずです」と返されてしまったのです。

断言されたので、こちらの勉強不足かもしれないと思い、現在更に調査しているところです。

ご指導いただきありがとうございます。


4 ● tombe
●150ポイント

http://www.turbolinux.co.jp/knowledge/public/469.html

内容的にWebDAVで必要十分なのでは?

WebDAVをキーにして探せば情報や書籍もたくさんあります。Macをクライアントにするのも可です。

◎質問者からの返答

ご回答ありがとうございます。

WebDAVについては全く存じませんでした。サーバーはapacheですので、あとはmod_davパッケージがインストールされているかどうかが問題になりますでしょうか。

今から情報収集してみます。


5 ● esseesse
●150ポイント

http://www.mars.dti.ne.jp/~torao/program/protocol/ftp.html

Hey! Java Programming! //POP3//

Javaアプレットを使ってPASVでPUTするという方法はNGでしょうか?

http://www.google.co.jp/search?hl=ja&ie=UTF-8&q=php+ftp+class&lr...

クライアントにPHPを入れるのであればphp ftp classあたりでぐぐって出てきたスクリプトを参考にされるといいと思います。

◎質問者からの返答

ご回答ありがとうございます。

最悪の場合は、Javaアプレットで作成することになるかと思います。

php ftp classでぐぐってみましたが、「PHPでftp接続」という点はクリアしているのですが(というかそこはPHP標準のFTP関数で実装できています)、「ディレクトリごとアップロード」についてはパッと見、見当たらないように思います。検索結果を全部見ていないので、これからひとつひとつ見てみます。

ありがとうございます。


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



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