Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.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中不使用zip下载多个文件?_Java_Servlets_Download - Fatal编程技术网

如何在java中不使用zip下载多个文件?

如何在java中不使用zip下载多个文件?,java,servlets,download,Java,Servlets,Download,如何在java中下载多个文件(.txt或.ep)(使用浏览器提供的多个弹出式下载窗口) 过程是这样的 1.选中“使用文件”复选框, 2.单击下载按钮 3.显示用于下载选定文件的多个弹出窗口 实际问题是,当我选择3个文件时,只能下载第一个文件。 <select name="foldname" id="test-select"> Servlet代码如下所示 String[] fdnam=request.getParameterValues("foldname");

如何在java中下载多个文件(.txt或.ep)(使用浏览器提供的多个弹出式下载窗口)

过程是这样的
1.选中“使用文件”复选框,
2.单击下载按钮
3.显示用于下载选定文件的多个弹出窗口

实际问题是,当我选择3个文件时,只能下载第一个文件。

<select name="foldname" id="test-select">

Servlet代码如下所示

String[] fdnam=request.getParameterValues("foldname");
        if(select.length!=1)
        {
            for(String select1 : select)                                   
            {
                if(fdnam!=null){  
                String[] lm=select1.split("/");
                String realPath=dbHandlerObj.getbasepath(lm[0],lm[1]);
                select1=realPath+File.separator+select1;

                }
                filenames.add(new File(select1));                            
            }
            for (int i=0; i<filenames.size(); i++) {
             int BUFSIZE =4096;

             int length   = 0;

             File file = new File(filenames.get(i).toString());
             System.out.println("File1["+i+"]="+file);
             System.out.println("FileLength["+i+"]="+file.length());

             String LastName=file.getName();

             response.setContentLength((int)file.length());
             response.setContentType("text/html");
             response.setHeader("Content-Disposition", "attachment; filename=\"" + LastName + "\"");

             byte[] byteBuffer= new byte [BUFSIZE];

             ServletOutputStream outS= response.getOutputStream();
             DataInputStream in=new DataInputStream(new FileInputStream (file));  


             while ((in != null) && ((length = in.read(byteBuffer)) != -1))

                {
                    outS.write(byteBuffer,0,length);
                }
             in.close();
             outS.flush();
             outS.close();

            } 
         }
String[]fdnam=request.getParameterValues(“foldname”);
如果(选择.length!=1)
{
用于(字符串选择1:选择)
{
如果(fdnam!=null){
字符串[]lm=select1.split(“/”);
字符串realPath=dbHandlerObj.getbasepath(lm[0],lm[1]);
select1=realPath+File.separator+select1;
}
添加(新文件(选择1));
}

对于(int i=0;i servlet代码中的
select
是什么,您是否有任何错误?@sudhiroja
select
是字符串数组,将获取所选文件的内存位置,如{C:/Users/ipc/Downloads/new.txt,C:/Users/ipc/Downloads/new.ep,C:/Users/ipc/Downloads/time.txt}没有错误。但只能下载1个文件。没有答案。。?