2

Javaにfileuploadサーブレットがあります。そして、私はフォルダをアップロードするためのパスを設定したいと思います。私は言う:

 File disk = new File("/myportlet/upload/"+item.getName());
 item.write(disk);

しかし、何も保存されませんでした。絶対パスを使用してフォルダをアップロードすると、すべて正常に機能します。
では、サーバーにフォルダをアップロードするためのパスを設定するにはどうすればよいですか?

4

2 に答える 2

2

コンストラクターの先頭の「/」new File()は、ファイルシステムのルートを指します。ファイルは、コード内の、という名前のディレクトリに書き込まれ/myportlet/uploadます。

コメントが暗示しているように、appserver-internalディレクトリへの書き込みは仕様に違反しており、一般的にひどい考えです-正直なところ、そうするための適切な使用法を1つ考えることはできません。やりたいことは、パラメータ(たとえば、サーブレットの初期化パラメータやコンテキスト初期化パラメータ)からターゲットパスを読み取り、それを使用することです。

于 2012-12-19T12:32:01.223 に答える
2

以下のスニペットを使用しました。Windowsサーバーでは正常に動作しました。

File f=new File("sample.xls");
        f.createNewFile();
        FileOutputStream fos=null;
        if(f != null){
            fos=new FileOutputStream(f);
            fos.write(b);
            fos.flush();
            fos.close();
        }
于 2012-12-19T12:33:48.097 に答える