浏览 1792 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-11-18
最后修改:2010-11-18
这个例子给出的是如何利用commons-fileupload 直接从HttpServletRequest 中获取信息完成上传 /** * 文件上传 * 如果不用struts做表现层,可能会要自己实现文件上传。 * 所以这里给出一个demon,依赖于servletAPI * @param request */ @SuppressWarnings("unchecked") public static void upload(HttpServletRequest request) { // 判断是不是一个上传型的request if (!ServletFileUpload.isMultipartContent(request)) { log.error("request is not a upload request"); return; } DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); upload.setSizeMax(4 * 1024 * 1024); upload.setHeaderEncoding(request.getCharacterEncoding()); try { List items = upload.parseRequest(request); for (Object obj : items) { FileItem item = (FileItem) obj; if (!item.isFormField()) { //如果是文件域,上传 String fileName = item.getName(); String contentType = item.getContentType(); //文件预备存放的位置 String filePath = "D:/" + fileName + contentType; File file = new File(filePath); item.write(file); } } } catch (Exception e) { e.printStackTrace(); } } 其他非文件类型的属性怎么获取呢? 其实啊,commons-fileupload把html页面中所有带name属性的标签都当做一个FileItem,其他字段的值,则可以通过getFieldName获取属性名称(小提醒:不是filename,是fieldname,field是字段的意思 -_-),getString方法获取属性值.........或者索性在另外的地方用request.getParameter("")拿到非文件类型的字段,来单独处理! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |