日期:2014-05-17  浏览次数:20582 次

如何获取上传文件的输入流
用io实现文件上传的时候,如何在servlet中获取上传文件的输入流啊?

------解决方案--------------------
我告诉你,什么都不用就可以实现基于WEB上传文件
只要提交表单时候声明支持
<FORM ENCTYPE="multipart/form-data" ACTION="_URL_" METHOD=POST>
File to process: <INPUT NAME="userfile1" TYPE="file">
<INPUT TYPE="submit" VALUE="Send File">
</FORM>
然后从HTTP协议的Request中读取即可
------解决方案--------------------
InputStream in = request.getInputStream();
ObjectInputStream ois = new ObjectInputStream(in);
TableBean table=new TableBean();
table=(TableBean)ois.readObject();
这是我的一个列子,是写在servle里面的,我是接受的一个bean,看是否能帮助LZ.
------解决方案--------------------
http://www.iteye.com/topic/66945
用servlet 用fileupload  可以参考 一下这个篇文章
看doPost()那一段 
while(i.hasNext()) {    
19.            FileItem fi = (FileItem)i.next();    
20.            // 获得文件名,这个文件名包括路径:    
21.            String fileName = fi.getName();    
22.            // 在这里可以记录用户和文件信息    
23.            // ...    
24.            // 写入文件,暂定文件名为a.txt,可以从fileName中提取文件名:    
25.            fi.write(new File(uploadPath + "a.txt"));    
26.        } 


fi.getInputStream()可以取到 文件流
------解决方案--------------------

/**
 * 检测接受请求内容工具
 */
  public static void observe() {
          String name,pvalue;
          Object avalue;
          Enumeration enum1;
          HttpServletRequest  request=Struts2Util.getRequest();
          System.out.println("/***************** Request Observer (Author: Alex Nie)**************/");
          // observe Request Header
          enum1 = request.getHeaderNames();
          System.out.println("Request Header:");
          while (enum1.hasMoreElements()) {
              name = (String)enum1.nextElement();
              pvalue = request.getHeader(name);
              System.out.println("  " + name + " ---- " + pvalue);
          }