首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

文件下传的使用技巧

2012-11-23 
文件上传的使用技巧相信大家都文件上传比不陌生,也有许多不同的处理方法。文件上传不仅要在前端页面进行格

文件上传的使用技巧
    相信大家都文件上传比不陌生,也有许多不同的处理方法。文件上传不仅要在前端页面进行格式校验,在后端服务也要进行各种可能性的校验。就拿图片来说吧,首先在前端要判断是否是图片格式,而服务还要判断文件是否存在,图片大小的限制,生成图片的缩略图等等。如果这些功能全部都有自己来写那该多累啊,效率也不高。
    对于java文件上传也有许多的第三方包,其中commons-fileupload和commons-io的包很好用,也给我带来了很多方便。下面就以一小段代码来讲讲它的使用方法:

protected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {if (!ServletFileUpload.isMultipartContent(req)) {// TODO 该表单不符合文件上传规则,对前端页面返回错误信息。//......return;}//MyServlet是本方法类的servlet//通过本类获取相对的URL,同时得到保存缓存的文件路径//你也可以通过自己指定的路径,而不必非得这么做URL url = MyServlet.class.getResource("");File file = new File(url.getFile() + "tmp");if (!file.isDirectory())file.mkdir();// 该提示符合文件上传规则,在此处对文件上传数据进行处理。DiskFileItemFactory factory = new DiskFileItemFactory();// 设定使用内存超过512KB时,将产生临时文件并存储于临时目录中。factory.setSizeThreshold(512 * 1024);// 设定存储临时文件的目录。factory.setRepository(file);ServletFileUpload fileUpload = new ServletFileUpload(factory);// 设定默认或最大允许上传5MB的文件。fileUpload.setSizeMax(5 * 1024 * 1024);try {List<FileItem> fileItems = fileUpload.parseRequest(req);for (FileItem fileItem : fileItems) {if (!fileItem.isFormField()) {byte[] bs = fileItem.get();//TODO 这里已经获取到上传的文件字节,进行对数据的保存等等//...break;}}} catch (Exception e) {//TODO 返回错误信息给页面}}

    以上代码已经比较好的说明是文件上传的使用,在这里所使用的是commons-fileupload-1.2.1.jar和commons-io-1.4.jar。

热点排行