0

我的问题是我有一个程序可以制作文件并将其流式传输给用户我有两个问题:

1)首先如何更改文件名和类型(x.sql)

2)如果在制作文件时出现异常,我想将用户重定向到错误页面,因为当我们想写入servlet中的输出流时,我的方法的返回类型是无效的!

我的程序是这样的:

    @RequestMapping(value = "/test/{jobid}")
   public void dumpData(@PathVariable("jobid") long jobid, HttpServletResponse response) {
     try {

        response.setContentType("application/octet-stream");
        ServletOutputStream out = response.getOutputStream();
        String downloadOutput = "";
        // AM I ABLE TO SET FILENAME SO THE USER DOWNLOAD THE FILE WITH THAT NAME ?
        // DOES SETHEADER HELP ME IN THIS CASE ?

        ... (making downloadOutput String by values coming from somewhere)

        out.write(downloadOutput.getBytes("UTF-8"));
        out.flush();
        out.close();
     } catch(SomeException e){
         //WHEN THE RETURN TYPE IS VOID HOW TO REDIRECT USER TO ERROR PAGE IN CASE OF SOME PROBLEM ? 
        //(INFO:)IF WE DEFINE STRING AS RETURN TYPE THE PROGRAM WILL GET EXCEPTION 
     }
4

2 回答 2

2

回答你的第一个问题:

response.setHeader( "Content-Disposition", "attachment;filename=" + filename );
//for zip file
response.setContentType("application/zip");

以下是各种内容类型的 mime 类型列表。

我在这里找到了解决方案。您可以将返回类型更改为字符串并在出现错误时返回错误视图名称,否则返回 null。我从链接中了解到的是返回 null 和返回类型 void 是相似的。

于 2013-04-28T05:21:24.820 回答
1

是什么阻止您使用 response.sendRedirect(errorPage)?

于 2013-04-28T06:05:29.007 回答