Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在tomcat服务器上设置下载文件。_Java_Tomcat_Download_Docx - Fatal编程技术网

Java 在tomcat服务器上设置下载文件。

Java 在tomcat服务器上设置下载文件。,java,tomcat,download,docx,Java,Tomcat,Download,Docx,我正在服务器端生成一个.docx文件。我已将其保存到tmp目录中,如下所示: docx.createDocx(System.getProperty("java.io.tmpdir") + "/example_title"); (我可以确认这确实有效,该文件存储在/tmp/tomcat6 tmp中/ 我希望用户能够下载创建的文件。我尝试了以下方法: out.println("<a href = '"+System.getProperty("java.io.tmpdir") + "/exam

我正在服务器端生成一个.docx文件。我已将其保存到tmp目录中,如下所示:

docx.createDocx(System.getProperty("java.io.tmpdir") + "/example_title");
(我可以确认这确实有效,该文件存储在/tmp/tomcat6 tmp中/

我希望用户能够下载创建的文件。我尝试了以下方法:

out.println("<a href = '"+System.getProperty("java.io.tmpdir") + "/example_title.docx"+"'>Here ya go!</a>");

重复:是的,问题是不同的,但答案对你来说是一样的。顺便说一句,你不必将文件保存在临时目录中,你也可以直接将其写入请求的响应中。是的,我看了一下。我希望能够直接将其写入响应中,但因为我只有createDocx(String)方法,可能吗?我明白了。你可以在同一个请求中获得临时文件的
InputStream
,并将其传输到响应的
OutputStream
,而不是提供下载链接?(然后如果有必要,删除临时文件)酷,谢谢@BalusC-我编辑了我的问题,我成功了吗?
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("application/msword");
    response.setHeader("Content-Disposition", "attachment; filename=\"consolidatedReport.docx\"");

    // Load the template.
    // Java 5 users will have to use RhinoFileTemplate instead
    CreateDocx docx = new CreateDocx("docx");

    String text = "Lorem ipsum dolor sit amet.";

    HashMap paramsTitle = new HashMap();
    paramsTitle.put("val", "1");
    paramsTitle.put("u", "single");
    paramsTitle.put("sz", "22");
    paramsTitle.put("font", "Blackadder ITC");

    docx.addTitle(text, paramsTitle);
    docx.createDocx(System.getProperty("java.io.tmpdir") + "/example_title");

    FileInputStream a = new FileInputStream(System.getProperty("java.io.tmpdir") + "/example_title.docx");
    while(a.available() > 0)
      response.getWriter().append((char)a.read());
}