1

ファイルを取得して解析するファイルアップロードページがあります。

イベントの順序

  1. ユーザーがファイルをアップロード
  2. アップロードされたファイルがコピーされる
  3. コピーされたファイルは、CPDetectorを使用してエンコーディングがチェックされます
  4. コピーされたファイルから決定されたエンコーディングは、元のアップロードされたファイルを解析するために使用されます
    • FileNotFoundException作成中の Solaris Test Server でBufferedReader
  5. コピーしたファイルは削除されます
  6. アップロードされたファイルは解析/検証されます
  7. 解析されたデータはデータベースに保存されます
  8. アップロードされたファイルが削除されます (私がこれを行っているのか、Tomcat を行っているのか思い出せません。)

プロセス全体が Windows 7 ワークステーションで動作します。上記のように、Solaris テスト サーバーでは機能しません。何か (Tomcat と思われます) がアップロードされたファイルを解析を完了する前に削除しています。

プロセス中にディレクトリを監視しましたが、アップロードされたファイルは実際に作成されますが、削除されるまでに 1 秒もかかりません。また、入るはずですが、代わりにディレクトリに/opt/tomcat/作成されているようです。/var/opt/csw/tomcat6/temp/

助けてくれてありがとう

4

1 に答える 1

0

このように自分の質問に答えるのはおそらく悪い形だと思いますが、他の人の助けになる場合に備えて、ここに残しておきたいと思います.

問題は、ファイルへのアクセス方法であることが判明しました。

Windows 用のハードコードされたファイル パスと、テスト サーバー用のデータベース ロードされたパスがありました。私はそれらを使用するように切り替えましSystem.getProperty("catalina.home")+"/temp/" + filename た。一時ファイルをもう一度コピーしているので、最終的には次のようになります。

イベントの順序(変更は太字で表示)

  1. ユーザーがファイルをアップロード
  2. アップロードされたファイルがコピーされる
  3. コピーされたファイルは、CPDetectorを使用してエンコーディングがチェックされます
  4. アップロードされたファイルは再度コピーされ、コピーが解析されるまで存続することが保証されます
  5. コピーされたファイルから決定されたエンコーディングは、元のアップロードされたファイルを解析するために使用されます
  6. エンコード検出に使用されたコピーは削除されます
  7. 解析用のコピーが解析/検証されます
  8. 解析されたデータはデータベースに保存されます
  9. 解析済みファイルは削除されます。
  10. アップロードされたファイルが削除されます (私がこれを行っているのか、Tomcat がそうしているのかはわかりません。)
于 2012-08-14T21:46:57.387 に答える