当前位置: 首页 > 面试题库 >

静态Web服务中的文件下载

刘承悦
2023-03-14
问题内容

我的要求是,我应该通过一个安静的服务将10MB的zip文件发送给客户端。我在论坛中找到了发送StreamingOutput对象是更好的方法的代码,但是如何StreamingOutput在以下代码中创建对象:

@Path("PDF-file.pdf/")
@GET
@Produces({"application/pdf"})
public StreamingOutput getPDF() throws Exception {
  return new StreamingOutput() {
     public void write(OutputStream output) throws IOException, WebApplicationException      
     {
        try {
            //------
        } catch (Exception e) {
            throw new WebApplicationException(e);
        }
     }
  };
}

问题答案:

它是下载文件的更好方法和简便方法。

private static final String FILE_PATH = "d:\\Test2.zip";
@GET
@Path("/get")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response getFile() {
    File file = new File(FILE_PATH);
    ResponseBuilder response = Response.ok((Object) file);
    response.header("Content-Disposition", "attachment; filename=newfile.zip");
    return response.build();

}

对于您所要求的代码:

@GET
@Path("/helloWorldZip") 
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public StreamingOutput helloWorldZip() throws Exception {
    return new StreamingOutput(){
    @Override
        public void write(OutputStream arg0) throws IOException, WebApplicationException {
            // TODO Auto-generated method stub
            BufferedOutputStream bus = new BufferedOutputStream(arg0);
            try {
                //ByteArrayInputStream reader = (ByteArrayInputStream) Thread.currentThread().getContextClassLoader().getResourceAsStream();     
                //byte[] input = new byte[2048];  
                java.net.URL uri = Thread.currentThread().getContextClassLoader().getResource("");
                File file = new File("D:\\Test1.zip");
                FileInputStream fizip = new FileInputStream(file);
                byte[] buffer2 = IOUtils.toByteArray(fizip);
                bus.write(buffer2);
            } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            }
        }
    };
}


 类似资料:
  • 我们先来看看最简单的本地静态文件服务配置示例: server { listen 80; server_name www.test.com; charset utf-8; root /data/www.test.com; index index.html index.htm; } 就这些?

  • 我试着设置nginx来服务我的node.js应用程序静态文件。问题是,当我试图得到我的文件时,我的状态是403禁止的。 当我尝试下载一个文件从 /root/appJs/public/css/style.css我写http://sitename.com/css/style.css我retive 403禁忌状态。我已经在一些论坛上寻找解决方案,但没有

  • 问题内容: 我正在尝试在nodejs中创建静态文件服务器,而不是将其作为完美的服务器,这更多是为了理解节点。我非常了解Connect和node- static之类的项目,并且完全打算将这些库用于更多可用于生产的代码,但我也想了解我正在使用的基础知识。考虑到这一点,我编写了一个小的server.js: 我的问题是双重的 这是在节点中创建和流式传输基本html等的“正确”方法,还是有更好/更优雅/更可

  • 在根目录下新建文件夹叫static。代码可以通过/static/来引入相关的静态资源。 export default () => <img src="/static/my-image.png" alt="my image" /> _注意:不要自定义静态文件夹的名字,只能叫static ,因为只有这个名字 Next.js 才会把它当作静态资源。

  • 问题内容: 我想通过上传图像和员工数据来在系统中创建员工信息。我可以使用球衣使用其他休息电话来做到这一点。但我想在一个电话会议中实现。我在下面提供结构。请帮我在这方面怎么做。 每当我尝试执行此操作时,Chrome邮递员都会出现错误。我的Employee json的简单结构如下。 但是,我可以通过拨打两个不同的电话来做到这一点,但我想在一个休息电话中实现,这样我就可以接收文件以及员工的实际数据。 请

  • 问题内容: 如何使用Go Web服务器提供index.html(或其他静态HTML文件)? 我只想要一个基本的静态HTML文件(例如,一篇文章),就可以从Go Web服务器上提供该文件。HTML应该可以在go程序之外进行修改,就像使用HTML模板时一样。 这是我的Web服务器,仅托管硬编码文本(“ Hello world!”)。 问题答案: 使用Golang net / http包,该任务非常容易