我是使用glassfish服务器来使用netbeans的新手。我的html代码如下所示:
<html> <body> <form id="file_upload_form" method="post" enctype="multipart/form-data" action="upload.java"> <div style="float:center"> <center> Select a file: <input type="file" name="first" /> <input type="submit" name="button" value="upload" /> </center> </div> <center> </br> </br> <iframe id="upload" style="background-color:white;" width=90% height=80%></iframe> </center> </form> </body> </html>
提交请求时,我想将上传的文件存储在drive(ex.c:/ upload)中,而iframe(id = upload)应该在文件夹(c:/ upload)中显示文件。有谁知道我在哪里可以找到一些示例代码来说明如何完成此工作?
要multipart/form-data在Servlet中处理HTTP 请求,请使用Apache Commons FileUpload。您最终应该在中上传文件FileItem。它有一种write()方法。
multipart/form-data
FileItem
write()
String filename = FilenameUtils.getName(fileItem.getName()); fileItem.write(new File("c:/upload", filename)); // Name must be unique!
有关使用指南和更多代码示例,只需查看其《用户指南》。
要显示文件夹中的文件列表,您需要使用java.io.FileAPI,它具有一种listFiles()返回特定路径中所有文件(路径)列表的方法。在预处理servlet中执行此操作,该servlet将请求转发到JSP以显示列表。
java.io.File
listFiles()
File[] files = new File("c:/upload").listFiles(); request.setAttribute("files", files); request.getRequestDispatcher("/WEB-INF/uploads.jsp").forward(request, response);
在/WEB-INF/uploads.jsp文件中,使用JSTL<c:forEach>遍历File[]。
/WEB-INF/uploads.jsp
<c:forEach>
File[]
<c:forEach items="${files}" var="file"> <c:out value="${file.name}" /> (${file.length / 1024}KB)<br/> </c:forEach>
请注意,当然可以进行更多(UI)微调,但这取决于您。我假设您已经了解HTML / JSP / Servlet基础。