- ベストアンサー
HTMLでクライント側からのボタン押下でファイルを別のサーバに転送する方法
- HTMLでクライント側からのボタン押下を契機に別のサーバにファイルを転送する方法を探しています。HTML内には、同サーバ内に格納されているファイルを指定し、送信先のサーバ情報を記載しておくことで実現したいと考えています。CgiやPHPを使わずに行いたいです。
- インターネット上で調べても、formタグを使用してクライントが選択したファイルをサーバにアップロードする方法は見つかりますが、送信するファイルが決まっている場合については情報が限られています。このような要件を満たす方法を探しています。
- 送信するファイルが固定されている場合のHTMLでのファイル転送方法を教えてください。CgiやPHPなどのスクリプトを使用せずに実現する方法があれば教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
それは、普通FTPアプリケーションですね。 別にTELNETでもRSHでもよいですが、、 HTMLってゆうかHTTPでは無理でしょ。 サーバー側にFTPクライアント機能を提供するページをCGIやPHP で準備すれば、Webサーバー経由で簡単に実現できますが、 それはだめなんですよね。
その他の回答 (3)
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
転送先のサーバーでCGIは使えますよね? ファイルを受信するプログラムがなければ、転送されてきたファイルを保存出来ません。 でなければ、ApacheならheaderモジュールとPUTメソッドでなんとかなるかもしれませんが。。。 ドメイン制限が限定的に取り払われたXMLHttpRequest2を利用すれば、 Ajaxでデータを受け取って、そのデータを他のサーバーに対して送信出来ます。 cross-origin request(ドメイン間通信)専用の設定が必要になります。 http://dev.w3.org/2006/waf/access-control/ 一言で言えば、ドメイン間通信を行う送信先で、送信元となるドメインが許可されたものかどうかという情報を付け加える必要があります。 が、これ(ドメイン間通信)に対応しているブラウザはFirefox3.6とChrome4くらいしかなかったと思いますし、 Firefox(Gecko)でバイナリデータを送信するには.sendAsBinary()というGecko専用のメソッドを使う必要があります。 Chromeがバイナリデータの送信をサポートしているかどうかはわかりません。 たぶん、.send()で行けると思いますが、、、 HTML5ならWebSocketsという方法もありますが、現状はChrom4のみ対応していることと、受信側(転送先)で専用サーバーを用意する必要があります。
- Koba5
- ベストアンサー率55% (11/20)
IEならば、セキュリティ設定を低くし、javascriptやVBScript(Scripting.FileSystemObject)を使用してクライアントより複写を実行することができます。
- kotoby2003
- ベストアンサー率15% (280/1755)
CGIやPHPなどサーバーサイドアプリケーションを介さず実現するのは、不可能です。
補足
ご回答ありがとうございました。 やはり無理なんですかね。。。。 > HTMLってゆうかHTTPでは無理でしょ。 確かにHTTPの間違いでした。 今回の構成だと (1)クライアントPC (2)Webサーバ(HTMLが置いてあるサーバ) (3)別のサーバ formタグを使って、(1)のクライントPCにあるファイルを(3)のサーバにアップロードすることはできることを確認できたので、 (2)にあるファイルを(3)に送ることもできそうな気がしたのですが。。。。 (2)にCGIやPHPを動かせる環境が必要なんですね。。。