标签:apache use 实现 tco null 设置 doc 大于 parse
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Insert title here</title> 6 </head> 7 <body> 8 <form action="upload" method="post" enctype= "multipart/form-data"> 9 <input type="text" name="username"/><br/> 10 <input type="password" name="passwd" ><br/> 11 <input type="file" name="file"> <br/> 12 <input type="submit"> 13 </form> 14 </body> 15 </html>
if(items.isFormField()){ if("des".equals(items.getFieldName())){ fileDesc1=new String(items.getString().getBytes("iso-8859-1"),"UTF-8"); }
DiskFileItemFactory diff=new DiskFileItemFactory(); diff.setSizeThreshold(10*1024*1024); diff.setRepository(new File(this.getServletContext().getRealPath("tmp")));
2. 然后设置文件上传对象ServletFileUpload,并把文件工厂的对象添加进来。
ServletFileUpload sfu=new ServletFileUpload(diff);
3. 接下来我们需要对文件进行解析。fileUpload.parseRequest()用于解析文件请求,并返回一个List<FileItem>类。FileItem类用来封装单个表单字段元素的数据,一个表单元素对应一个对象(表单元素是允许用户在表单中(比如:文本域,下拉列表,单选框,复选框等等)输入信息的元素)。
List<FileItem> item=null; try { item=fileUpload.parseRequest(request); for(FileItem items:item){ if(items.isFormField()){ //为普通表单 if("des".equals(items.getFieldName())){ //表单 fileDesc1=new String(items.getString().getBytes("iso-8859-1"),"UTF-8"); } }else{ //为表单中的文件 String uppath=this.getServletContext().getRealPath("upload"); //获得上传文件夹路径 FileOutputStream fos=new FileOutputStream(uppath+"/"+items.getName()); //文件输出流,流向文件而不是文件夹 fileDesc=items.getName(); if(items.isInMemory()){ //小于10M,直接写到上传文件夹 fos.write(items.get()); //往流里写内容,流入文件 }else{ //大于10M,先上传到临时文件夹tmp中 IOUtils.copy(items.getInputStream(), fos); //将输入流的内容复制到输出流,流入文件 } fos.close(); } } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }
标签:apache use 实现 tco null 设置 doc 大于 parse
原文地址:http://www.cnblogs.com/shyroke/p/6120182.html