- - PR -
ファイルアップロードの時すでに同じファイル名が存在している場合は?
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-09-27 10:13
お世話になります。
ファイルUploadの時すでに同じファイル名が存在している場合上書きされてしまいました。 いろんなUploadできるjarで試してみましたが Uploadする直前にファイルが存在しているかどうかをチェックできるようなのが見当たらないです。 ServletInputStream in = request.getInputStream(); size = in.readLine(buffer,0,buffer.length); 上記のを使ってやってみようとしてますが最初からsizeがー1でしたのでうまくいかないです。 皆様はどういうふうに解決できましたかご教授よろしくお願いします。 |
|
投稿日時: 2004-09-27 10:28
どんなものをお試しになりましたか?
例えば Struts ならばテンポラリの場所にファイル名が重複しないように一旦書き出してくれたような気がします。 |
|
投稿日時: 2004-09-27 10:34
ご回答ありがとうございます。
Strutsは使ってませんが hellohiroというものと ServletInputStream in = request.getInputStream(); size = in.readLine(buffer,0,buffer.length); を使って直接書き込むのを試してみました。 Apacheからのアップロードをやってみようと思ってますが <form enctype="multipart/form-data"> こうしてしまうとfileはアップロードできても他のパラメータは取れなくなってしまう恐れがありますよね。 それで今のところ迷ってます。 Apacheのアップロードで存在してるかどうか確認どれるんでしょうかね。 宜しくお願いします。 [ メッセージ編集済み 編集者: MUSE 編集日時 2004-09-27 10:39 ] |
|
投稿日時: 2004-09-27 10:51
Struts を使った場合、ファイルは既に書き込まれています。FormFile 等のクラスを参照してみてください。
Apache からのアップロード、とはなにを指していますか? 「fileはアップロードできても他のパラメータは取れなくなってしまう恐れ」というのもいまいち意味がわかりません。 |
|
投稿日時: 2004-09-27 11:06
ご回答有難うございます。
もう一度整理させていただきます。 掲示板みたいですが 色んな項目が書けるし、ファイルも複数添付できるようにしたいです。 大体「enctype="multipart/form-data"」をFormに入れるとfile以外のパラメータが取れなかったです。すべてnullでした。 T.T それに問題はファイルがアップロードされる前にファイル名をチェックして すでに存在してるならディレクトリを生成してそのDIRに入れようと思います。 他のpackageも試してみたらボタンがキックされた時点でアップロードされて上書きされてしまいますのでちょっと意味がなかったです。 私の勘違いかわかってないからかも知れませんが。。。 よろしくお願いします。 |
|
投稿日時: 2004-09-27 11:13
こんにちは、がちゃぴんです。
試されたかどうかはわかりませんが、別jarでの方法を以下に紹介します。 アップロードファイルが既に存在する場合の対処法として、その場合の制御が可能な、 オライリー(oreilly)のマルチパートリクエスト(MultipartRequest)を使用しています。 アップロード時のリクエストの場合にアップロードファイルやその他のリクエスト内容を 含むマルチパートリクエストをファイルリネームポリシー(FileRenamePolicy)を使用して 生成すると、重複時にファイル名の最後に1から順にシーケンシャルな数値を付加して 重複を避けてくれます。ファイルリネームポリシーを使用しなければ後優先の上書きに なります。重複チェックとして使えるかは微妙かも。 下記は、APIも含めて英語ですが、翻訳サイトを使えば、なんとか使い方は わかると思います(私もなんとかしたので)。 他のツールは使用したことが無いので、よりよいツールがあるのかもしれませんが、 選択肢の一つとして、御一考されてはいかがでしょうか。 http://www.servlets.com/cos/ |
|
投稿日時: 2004-09-27 11:29
がちゃぴん様
ご回答有難うございます。 できそうな気がします。 トライしてみます。 有難うございます!!! |
1