使用一些已有的组件帮助我们实现这种
上传功能。常用的上传组件:Apache 的 Commons FileUploadJavaZoom的UploadBeanjspSmartUpload以下,以FileUpload为例讲解1、在jsp端<form id="form1" name="form1" method="post" action="servlet/fileServlet" enctype="multipart/form-data">要注意enctype="multipart/form-data"然后只需要放置一个file控件,并执行submit操作即可<input name="file" type="file" size="20" ><input type="submit" name="submit" value="提交" >2、web端核心代码如下:public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8") DiskFileItemFactory factory = new DiskFileItemFactory() ServletFileUpload upload = new ServletFileUpload(factory) try { List items = upload.parseRequest(request) Iterator itr = items.iterator() while (itr.hasNext()) {FileItem item = (FileItem) itr.next()if (item.isFormField()) { System.out.println("
表单参数名:" + item.getFieldName() + ",表单参数值:" + item.getString("UTF-8"))} else { if (item.getName() != null &&!item.getName().equals("")) { System.out.println("
上传文件的大小:" + item.getSize()) System.out.println("上传文件的类型:" + item.getContentType()) System.out.println("上传文件的名称:" + item.getName()) File tempFile = new File(item.getName()) File file = new File(sc.getRealPath("/") + savePath, tempFile.getName()) item.write(file) request.setAttribute("upload.message", "上传文件成功!") }else{ request.setAttribute("upload.message", "没有选择上传文件!") }} } }catch(FileUploadException e){ e.printStackTrace() } catch (Exception e) { e.printStackTrace() request.setAttribute("upload.message", "上传文件失败!") } request.getRequestDispatcher("/uploadResult.jsp").forward(request, response) }通过severlet上传图片是可以的,甚至用手工方式上传也可以
因为调用读取这些图片的话,不用调用severlet,直接调用nginx即可
nginx本身就可以实现静态资源的web服务
评论列表(0条)