0

ファイルをダウンロードするコードを記述したサーブレットがあります。

コードの一部は次のとおりです。

response.setContentType((mimetype != null) ? mimetype
            : "application/octet-stream");


    response.setHeader("Content-Disposition", "attachment; filename="
            + fileName);

    OutputStream os = response.getOutputStream();
    try {
        //here getFileByte is a method for getting 
        byte bytes[] = getFileByte(filePath);
        os.write(bytes);
}

上記は正常に機能しますが、唯一の問題は、ファイル名に複数の単語が含まれている場合、最初の単語を含むファイルをダウンロードすることです。

例: - ファイル名が「Step by Step.pdf」の場合、ダウンロードされるファイルは「Step.pdf」になります。

私はそれを与える前にファイル名を印刷しようとしましたがsetHeader method、それは正しかったです。これを解決する方法がわかりません。ここで何が間違っているのか、このバグを修正する方法を誰かに確認してもらえますか?

4

2 に答える 2

0

ファイルにスペースが含まれている場合は、二重引用符で囲む必要があります。

Content-disposition: attachement; filename="file with spaces.whatever"

二重引用符は、スペースのないファイル名でも同様に機能するため、常に使用することをお勧めします。

于 2013-06-17T12:15:52.093 に答える