servlet 文件接收问题
java吧
全部回复
仅看楼主
level 5
xivisi 楼主
在使用 文件上传过程中发现request.getInputStream() 返回的输入流中怎样去掉request请求信息? 
这是html表单
<form action="up.do" id="form1" name="form1" encType="multipart/form-data" method="post">   
    <input type="file" id="file" name="file" style="width:450">   
    <input type="submit" value="上传文件">   
</form>
这里是servlet 
request.setCharacterEncoding("UTF-8");   
      File nf = new File(this.getServletContext().getRealPath("/image/") + "\\" + CountTime.currentTime() + ".jpg");//原本准备上传图片并以当前时间为文件名   
      if (!nf.exists()) {   
          nf.createNewFile();   
      }   
      BufferedOutputStream bof = new BufferedOutputStream(new FileOutputStream(nf));   
      ServletInputStream up = request.getInputStream();//获取ServletInputStream   
  
      try {   
          int i = up.read();   
          while (i != -1) {   
              bof.write(i);   
              i = up.read();   
          }   
          bof.close();   
      } catch (Exception e) {   
          bof.close();   
          nf.delete();//上传失败的删掉改文件   
          nf = null;   
      } finally {   
  
          response.setContentType("text/xml;charset=UTF-8");   
          response.setHeader("Cache-Control", "no-Cache");   

2009年08月10日 08点08分 1
level 5
xivisi 楼主
          PrintWriter out = response.getWriter();   
          try {   
              out.println("<response>");   
              if (nf != null) {   
                  out.println("<filename>" + nf.getName() + "</filename>");   
              } else {   
            out.println("<filename>NO</filename>");   
              }   
              out.println("</response>");   
          }   
          finally {   
              out.close();   
          }   
      }   
  }  
部分代码省略精简 
然后用文本文件测试 发现 文件中多出许多信息 
-----------------------------31673223865021  
Content-Disposition: form-data; name="file"; filename="新建文本文档.txt"  
Content-Type: text/plain   
  
这是文本测试文件的文本内容。   
-----------------------------31673223865021--  
想知道如何去掉多余信息 

2009年08月10日 08点08分 2
1