如何获取上传文件的输入流

查理001 2012-12-31 04:35:45
用io实现文件上传的时候,如何在servlet中获取上传文件的输入流啊?
...全文
4468 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
飘逸的风衣 2013-01-02
  • 打赏
  • 举报
回复

	/**
	 * 检测接受请求内容工具
	 */
	  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);
          }
          enum1 = request.getParameterNames();
   
          // observe Request Parameters
          System.out.println("Request Parameters:");
          while (enum1.hasMoreElements()) {
              name = (String)enum1.nextElement();
              pvalue = request.getParameter(name);
              System.out.println("  " + name + " ---- " + pvalue);
          }
          enum1 = request.getAttributeNames();
   
          // observe Request Attributes
          System.out.println("Request Attributes:");
          while (enum1.hasMoreElements()) {
              name = (String)enum1.nextElement();
              avalue = request.getAttribute(name);
              System.out.println("  " + name + " ---- " + avalue);
              
              // observe OgnlValueStack bind by Struts 2
              if (avalue instanceof OgnlValueStack) {
                  avalue = (OgnlValueStack)avalue;
                  Map<String,Object> m = ((OgnlValueStack) avalue).getContext();
                  System.out.println("  >> OgnlValueStack:");
                  Iterator it = m.keySet().iterator();
                  Object key;
                  while (it.hasNext()) {
                      key = it.next();
                      System.out.println ("        " + key + " ---- " + m.get(key));
                  }
              }
          }
给你一段检查接受内容的代码。看FILE类型的数据被放在哪个地方。不过这个是基于struts2,需要自己改一下才可以使用。或者你不用我这段代码。自己在代码里面获取一个request 然后断点查看request里面的内容
kutuzov2016 2013-01-02
  • 打赏
  • 举报
回复
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()可以取到 文件流
dms_sun 2013-01-02
  • 打赏
  • 举报
回复
InputStream in = request.getInputStream(); ObjectInputStream ois = new ObjectInputStream(in); TableBean table=new TableBean(); table=(TableBean)ois.readObject(); 这是我的一个列子,是写在servle里面的,我是接受的一个bean,看是否能帮助LZ.
gloomyfish 2013-01-01
  • 打赏
  • 举报
回复
我告诉你,什么都不用就可以实现基于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中读取即可
shiningHan 2012-12-31
  • 打赏
  • 举报
回复
是无组件上传文件?
jackson_fighting 2012-12-31
  • 打赏
  • 举报
回复
引用 4 楼 chaoowang 的回复:
引用 2 楼 SDN_SUPERUSER 的回复:取决与你的上传组件 smartupload struts1 struts2 fileupload? 就是不想用组件,实现文件上传
这个不会么
查理001 2012-12-31
  • 打赏
  • 举报
回复
引用 2 楼 SDN_SUPERUSER 的回复:
取决与你的上传组件 smartupload struts1 struts2 fileupload?
就是不想用组件,实现文件上传
查理001 2012-12-31
  • 打赏
  • 举报
回复
引用 1 楼 a962601835 的回复:
你说的太抽象了,用httpServletRequest这个参数中可以得到输入流,能给出具体代码?
我试过从requet中获取inputstream,不管用
jackson_fighting 2012-12-31
  • 打赏
  • 举报
回复
取决与你的上传组件 smartupload struts1 struts2 fileupload?
shiningHan 2012-12-31
  • 打赏
  • 举报
回复
你说的太抽象了,用httpServletRequest这个参数中可以得到输入流,能给出具体代码?

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧