WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:ファイルをアップロード

0:[投稿] WIN [2002/11/02 11:38 ][環境:WIN+IE WIN系+Perl]

ユーザPCからWEBサーバにファイルをアップロードするCGI
を作成しようとしています。
やりたい事は、
・あるページから呼ばれた時に以下のようなパラメータが付与されます。
 そのパラメータによって保存・参照するディレクトリを変更
  ?dir=/temp
・ファイルアップロード・ダウンロード
・ファイル一覧参照
・ファイル削除

これらの機能があるサンプルを探しているのですが
思うように探せません。
どなたか良いサンプルを知っている方は
教えてください。
よろしくお願いします。
(できればシンプルでわかりやすいものがいいです。)


1:[回答] andi [2002/11/02 13:34 ]

> あるページから呼ばれた時に以下のようなパラメータが付与されます。
> そのパラメータによって保存・参照するディレクトリを変更

かなり危険な物を作ろうとしていらっしゃる気がしますが、
そのあたりは意識できていますか?

意識できていないとすれば、辞めた方が良いのではないかと。


2:[質問] WIN [2002/11/02 13:42 ]

>かなり危険な物を作ろうとしていらっしゃる気がしますが、
>そのあたりは意識できていますか?

>意識できていないとすれば、辞めた方が良いのではないかと。
危険ですか??
イントラですので、問題はないと思っているのですが・・・
具体的にどの辺りが危険なのでしょうか?


3:[回答] andi [2002/11/02 13:59 ]

イントラですか。でしたら大分安全だと思いますが。

例えば重要なファイルの書き換えや、HTMLの書き換えが発生する可能性があります。
出来ればファイルのアップロードはある程度、保存先ディレクトリを固定にしておいた方が良いと思います。


4:[質問] WIN [2002/11/02 14:13 ]

andiさん、ありがとうございます。

>例えば重要なファイルの書き換えや、HTMLの書き換えが発生する可能性があります。
ファイル操作に関しては担当の人間しか行いませんので、大丈夫ですね。
メインで動いてるサーバとは違うサーバで処理させようと思ってますので、
そのサーバにはHTML自体殆どないので、これも大丈夫なのです。

>出来ればファイルのアップロードはある程度、保存先ディレクトリを固定にしておいた方が良いと思います。
たしかにそうなんですが、同名ファイルがありますので、
ディレクトリを分けたいのです。

どうすればできるのでしょうか?


5:[回答] andi [2002/11/02 15:02 ]

> たしかにそうなんですが、同名ファイルがありますので、
> ディレクトリを分けたいのです。
> どうすればできるのでしょうか?

アップロードする際に、サーバ側でファイル名の頭に一意となるキーを入れるのはどうでしょうか。
例えば"$^T.$$"(実行時間+プロセスID)で一意となるキーが得られます。


6:[質問] WIN [2002/11/02 17:44 ]

>アップロードする際に、サーバ側でファイル名の頭に一意となるキーを入れるのはどうでしょうか。
>例えば"$^T.$$"(実行時間+プロセスID)で一意となるキーが得られます。
時間を入れるってもの考えたのですが、後々になると区別がつきにくいのでダメだした。
ユーザーがアップしたファイルのみ操作できるようにしたいのです。


7:[回答] andi [2002/11/02 17:58 ]

あとは、サーバ側で同名ファイルがあるかを確認し、
同名ファイルが存在した場合は、上書きか再投稿を選ばせるとか。

自分なら、最初にアップした段階では「$^T.$$」のついたファイル名で
サーバのテンポラリディレクトリに格納し、上書きの場合にその処理を
行なうようにしておきます。

後はテンポラリディレクトリのクリーンアップ処理に、
アップロード時の処理に「テンポラリ内のファイルで数分以前の物は削除」する処理を付けます。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World