使用fileupload上传文件,并提供下载

 

 

参考文献:

http://sind.javaeye.com/blog/254399

 

 <textarea cols="50" rows="15" name="code" class="c-sharp">&lt;%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;Untitled Document&lt;/title&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312"&gt; &lt;/head&gt; &lt;body&gt; &lt;form action="up1.jsp" method="post" enctype="multipart/form-data" name="form1"&gt; &lt;input name="thisfile" type="file" id="thisfile"&gt; &lt;input name="user" type="text" id="user" size="10"&gt; &lt;input type="submit" name="Submit" value="Submit"&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt; </textarea>

 

 

<textarea cols="50" rows="15" name="code" class="c-sharp">&lt;%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %&gt; &lt;%@ page import="org.apache.commons.fileupload.*" %&gt; &lt;%@ page import="java.util.*" %&gt; &lt;%@ page import="java.io.*" %&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;Untitled Document&lt;/title&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312"&gt; &lt;/head&gt; &lt;body&gt; &lt;% System.out.println("test"); try { String dir = request.getRealPath("."); DiskFileUpload fu = new DiskFileUpload(); fu.setSizeMax(4194304); //设置文件大小. fu.setSizeThreshold(4096); //设置缓冲大小. fu.setRepositoryPath(dir+"/test"); //设置临时目录. List fileItems = fu.parseRequest(request); //解析请求,返回一个集合. System.out.println("abcc"); Iterator i = fileItems.iterator(); while(i.hasNext()) { FileItem fi = (FileItem)i.next(); if(fi.isFormField()) //这是用来确定是否为文件属性, { String fieldName = fi.getFieldName(); //这里取得表单名 String fieldvalue=fi.getString(); //这里取得表单值 out.print("&lt;br&gt;"); out.print("name:"+fieldName); out.print("value:"+fieldvalue); System.out.println("formField " + fieldName + " " + fieldvalue); } else //这里开始外理文件 { String fileName = fi.getName(); // 返回文件名包括客户机路径 if(fileName != null){ out.print(fileName); out.print("aaa&lt;br&gt;" + fi.getFieldName()); // 打印文件表单名 fi.write(new File(dir + "/data")); System.out.println(fileName); System.out.println("upload"); System.out.println(dir.toString()); } } } } catch(Exception e) { System.out.println("ab"); out.println(e.getMessage()); } System.out.println("aaa"); %&gt;   &lt;/body&gt;   &lt;/html&gt; </textarea>

 

commons-fileupload-1.2.1.jar

commons-io-1.1.jar

 

需要上面的2个包,没有下面的会报错。

 

上面的代码测试通过。

 

下载部分:(不要模仿,只是说明可以使用。)

<textarea cols="50" rows="15" name="code" class="c-sharp">&lt;%@ page import="java.io.*" %&gt; &lt;% String filename = "data.txt"; // String filepath = "D:/eclipseworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/fileTransfer/data"; String filepath = request.getRealPath("/") + "data"; System.out.println(filepath); response.setContentType("text/plain"); response.setHeader("Location",filename); response.setHeader("Content-Disposition", "attachment; filename=" + filename); OutputStream outputStream = response.getOutputStream(); InputStream inputStream = new FileInputStream(filepath); byte[] buffer = new byte[1024]; int i = -1; while ((i = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, i); } outputStream.flush(); outputStream.close(); inputStream.close(); outputStream = null; %&gt;</textarea>  

 

你可能感兴趣的:(exception,String,iterator,buffer,input,import)