ホームページをftpみたいに使うには

[上に] [前に] [次に]
たなはし 1998/04/06(月) 14:22:20
普通の?ホームページって
ftpサーバーのページみたいに
フォルダをいろいろ並べて、
訪問者が任意にアップロードしたりできるのですか?

HIROPON [E-Mail] [HomePage] 1998/04/06(月) 18:15:33
基本的に、ブラウザはサーバから送られてくるデータを受け取って表示するソフトで
すから、アップロードは無理だと思うんですけど・・・。

というか、ftpサーバのページって何ですか?もし「ftp://」で始まるページのこと
なら、それはアノニマスFTPってやつです。匿名(anonymous)でログイン、ダウンロー
ドができるFTPサーバのことですが、いずれにせよ、外部の人間(匿名でログインし
た人)はアップロードやファイルの改変はできないはずです(できたらとんでもない
ことになりますよね)。

たなはし 1998/04/06(月) 21:03:46
そうそう、それです!
まのにあすftpって、ブラウザでダウンロードできますよね。
で、nn4とかに『ファイルのアップロード』というのが
メニューにあるのですが、これでアップ出来るような
ページはつくれないのですか?
現実的にとんでもないことになるのはわかるのですが
構造上?できるのか、できないのか、
あるいはとんでもないことになるから
できなくしてるのかが知りたいです。

HIROPON [E-Mail] [HomePage] 1998/04/06(月) 23:41:15
なるほど、NN4のヘルプファイルを見る限りでは、確かに原理的にはアップロードは
可能みたいですね。ただ、サーバ側での設定が必要なようですから、自分でサーバを
もっているとか、そういう状況じゃないと「訪問者が任意に」っていうのは事実上無
理なんじゃないでしょうか(もちろん、こんなことはやらない方が身のためです)。
普通のFTPサーバは(FTPに限った話ではないですけど)外部からのアップロードは禁
止しているはずです。(多分、NN4の機能は、「簡易FTPクライアントとしてブラウザ
が使える」っていう程度のものだと思います。実際にやったことないんで、なんぼの
もんかは分かりませんが ( ^^ ; 。)

B-Cus 1998/04/06(月) 23:54:47
> nn4とかに『ファイルのアップロード』というのが
> メニューにあるのですが、

NN4は使ってないので、ftpなのかhttpなのかがわかりませんが、
httpにはPUTメソッドがありますね。

ところでPUTメソッドについてどなたか簡単に解説していただけませんか?
具体的には書式と実装状況についてです。

例えば

PUT /~foo/incoming/sample.dat HTTP/1.0
Content-length: 10

abcdefghij

とすればPUTできるよ、とか、apacheではPUTは実装されいないとか、
実装されているけどデフォルトではPUTは禁止なので大抵のホストでは
使えないとか。

よろしくお願いします。

miyasiro 1998/04/07(火) 02:53:16
PUTメッソドは使ったことがないので、実際のことは知りませんが、
Web Client Programming (O'REILLY/オーム社)に載ってる例でよければ…

PUT /example.html HTTP/1.0
Connection: Keep-Alive
User-Agent: Mozilla/3.0Gold (WinNT; I)
Pragma: no-cache
Host: publish.ora.com
Accept: image/gif ...(以下略)
Content-type: text/html (←例では抜けているが本来は必要と書いてある)
Content-length: 307

<!DOCTYPE HTML ...(以下略)
<HTML>
(以下 HTML のエンティティは省略)

(↓サーバレスポンス)
HTTP/1.0 201 Created
Date:  ...(以下略)

とあるので、NN でもPUTメッソドを使うみたいです。(「ファイルのアップロード」がそうなのかどうかは未確認)
ただし、サーバは、普通はauthorization deniedのレスポンス(401 Unauthorizedのこと?)を返して認証情報を要求するというようなことが書いてあります。
実装状況は分かりません。

 ちなみに、うちのサーバ(www2s.biglobe.ne.jp)は、CGIが所有者の権限で動くので、POSTメソッドなどを使ってパーミッションが644などのファイルが作り放題です。でも、そうじゃない場合は面倒なのかな?(おかげでパーミッションが未だによく分からない(^^;)

ALM [E-Mail] [HomePage] 1998/04/07(火) 07:13:08
 FTP が利用できる無料ホストに登録し、アカウントとパスワードを公開する、と言うのはどうでしょう。
 ……別に、ご自身で契約なさっているプロバイダーのアカウントとパスワードでもいいですが。

まる高 [E-Mail] [HomePage] 1998/04/07(火) 09:37:02
ネスケ3で「ファイルのアップロード」機能を実現した際(仕事で)、下記のHPを参考にして、アップロードしたテキスト
ファイル/バイナリファイルを受け取るCGIプログラムを制作しました。

東大の渡辺尚貴さんのHPのCGIプログラミング入門( http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CCGI/ )
を参考にされると良いと思います。言語がC/C++ですが、perlに置き換えてコーディングすれば良いかと思います。

B-Cus 1998/04/07(火) 23:40:03
> PUTメッソドは使ったことがないので、実際のことは知りませんが、
> Web Client Programming (O'REILLY/オーム社)に載ってる例でよければ…

localhostのapacheとお話してPUTしてみたら、

<HTML><HEAD>
<TITLE>405 Method Not Allowed</TITLE>
</HEAD><BODY>
<H1>Method Not Allowed</H1>
The requested method PUT is not allowed for the URL /~foo/bar.html.<P>
</BODY></HTML>

と言われました。apacheの設定ファイルを見たんですけど、
どこらへんをいじればputを許容するのかはわかりませんでした。

> でも、そうじゃない場合は面倒なのかな?

面倒でしょうねぇ。どのディレクトリが777なのかを絶対に
知られないようにしないといけませんから。

うちはcgiwrapを通せば所有者権限で、普通にCGIを動かせば
nobody権限で動きます。

とほほ 1998/04/07(火) 23:52:27
ところで・・NN4のヘルプによると、NN4のアップロード機能はFTPを用
いるもので、FTPサイトに接続している場合のみ実行可能だそうです。

miyasiro 1998/04/08(水) 03:45:36
うちでも、ISPのサーバー上でCGIを使ってPUTでお話してみたら、

HTTP/1.0 500 Server Error
Server: Netscape-Enterprise/2.01b

と、普通のサーバーエラーが返ってきました。
GET ならちゃんと動くので、CGI には問題ないとは思うのですが…

>面倒でしょうねぇ。どのディレクトリが777なのかを絶対に
>知られないようにしないといけませんから。
 やっぱり…
>うちはcgiwrapを通せば所有者権限で、普通にCGIを動かせば
>nobody権限で動きます。
 使い分けができるんですね。所有者権限だけだと、なぜCGIがHTMLファイルを
出力してはいけないのかとか、掲示板などのCGIでなぜ0バイトのデータファイルが
必要なのかが、最初分からなかった…

>ところで・・NN4のヘルプによると、NN4のアップロード機能はFTPを用
>いるもので、FTPサイトに接続している場合のみ実行可能だそうです。

すいません、調べようと思っててサボってました(^^;
ただ、ウエブページを作成するComposerの方のヘルプには、以下の記述がありました。
>出版先のFTPまたはHTTPサイトのアドレスを入力する
>FTP: File Transfer Protocol (FTP)を使用してウェブページをアップロードする標準の場所を入力します。…
>HTTP: Web server protocol(HTTP)を使用してウェブページをアップロードする標準の場所を入力します。…


ということで、PUTに関してはまだよく分かってませんが、
少なくともCGIが所有者権限で動けば、<INPUT TYPE=file>などを使って、
訪問者が任意にファイルをホームページにアップロードできるようにすることは
可能なようですね。

mo [E-Mail] 1998/05/02(土) 00:11:34
[[解決]]
はじめまして、ここに投稿するのは初めてです。
URL の一般形式は、

プロトコル://[アカウント名[:パスワード]@]ホスト名[:ポート番号]/パス名

となっています。([] の部分は省略可能)
FTP で自分のアカウントで入りたいなら、

ftp://アカウント名:パスワード@ホスト名/パス名

とすればいいわけです。「:パスワード」の部分を省略すると、
最初にアクセスするときにパスワードを聞いてきます。
パス名には、自分のホームディレクトリを絶対パス名で指定してください。
ファイルをアップロードしたいディレクトリに移ったら、メニューから

File -> Upload File

を選びます。これで、FTP と同じようにファイルをアップロード
することができます。

[上に] [前に] [次に]