根据用户选择的索引显示文件

时间:2019-05-13 01:37:24

标签: java jsp servlets

我正在使用jsp开发网页。我正在显示本地磁盘上的文件列表,我想在单击时打开正确的文件。 这是我到目前为止所做的。

<select id="folder" name="folder">
                <option>- SELECT -</option>
                <%
                for (int i=0; i<folder.length; i++) { %>
                    <option value="<%= folder[i] %>"><%= folder[i] %></option>
                    <% }
                %>
            </select>

这将在下拉列表中显示文件夹列表。用户选择文件夹时。文件夹内容将显示在表格中。

    //open file in folder B
            if (s!= null && s.equals(folder[1])) {
                String subfolder2 = folder[1];
                String folderfilelist2 = dir + "\\" + subfolder2 + "\\" + "pdf";
                File completefolder2 = new File(folderfilelist2);
                completefolder2.getParentFile().mkdirs();
                File[] file_array2 = completefolder2.listFiles();
                        out.print("<table width=1200><tr>");
                        out.print("<p><th width=30><font size=\"6\">File under Company B</th></p>");
                        out.print("</tr></table>");
                        //create table 
                        out.print("<table width=1200><tr>");
                             out.print("<th width=50><b>No</b></th>");
                             out.print("<th width=400><b>File Name</b></th>");
                             out.print("<th width=200><b>Date Converted</b></th>");
                             out.print("<th width=100><b>Mark File</b></th>");
                             out.print("<th width=100><b>Download</b></th>");
                             out.print("<tr><th colspan=5><hr></th></tr>");
                        out.print("</tr></table>");
                        //list file
                        for (int i = 0; i < file_array2.length; i++) {
                             out.print("<table width=1200><tr>");
                                  out.print("<th width=50><font size=\"4\">" + (i +1 ) + "</font></th>");
                                  out.print("<th width=400><font size=\"4\"><a HREF='openfile'"+ file_array2[i].getName() + "\">" + file_array2[i].getName() + "</a></th>");
                                  out.print("<th width=200><font size=\"4\">" + df.format(new Date( file_array2[i].lastModified())) + "</font></th>");
                                  out.print("<th width=100> <input type='checkbox' name='selectedfile' value="+ file_array2[i].getName() +"\"></td>");
                                  out.print("<th width=100><a href='downloadfile'>Download</a></td>");
                             out.print("</tr></table>");
                        }

在文件上单击时,它将调用servlet来显示文件。

    out.print("<th width=400><font size=\"4\"><a HREF='openfile'"+ file_array2[i].getName() + "\">" + file_array2[i].getName() + "</a></th>");

“ openfile”将调用servlet。

Servlet代码:

    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
        response.setContentType("APPLICATION/PDF");
        response.setHeader("Content-Disposition", "inline; filename=\""
                            + file_array1[1].getName() + "\"");
    FileInputStream fileInputStream = new FileInputStream(completefolder2 + "\\" + file_array2[1].getName());

    int q;
    while( (q = fileInputStream.read()) != -1 ) {
        out.write(q);
    }
    fileInputStream.close();
    out.close();
    }

问题在于,在servlet中只能指定一个文件显示在网页上。

如何设置servlet以从列表中打开所选文件?

0 个答案:

没有答案