当前位置:  技术问答>java相关

如何用jsp实现上传文件的功能?(菜鸟散300分)

    来源: 互联网  发布时间:2015-11-15

    本文导语:  说的越详细越好。问题解决了再加200分! | 文件上传原理简单实现 要实现文件上载,我们必须先了解上载文件的HTTP请求。下面这个简单的应用示范了如何上载文件以及把HTTP请求的原始数据...

说的越详细越好。问题解决了再加200分!

|
文件上传原理简单实现



要实现文件上载,我们必须先了解上载文件的HTTP请求。下面这个简单的应用示范了如何上载文件以及把HTTP请求的原始数据写入文件。用文本编辑器查看该文件即可了解请求的格式,在此基础上我们就可以提取出上载文件的名字、文件内容以及原本混合在一起的其他信息。 

在这里我们写一个简单的html页面up.html,提供一个表单,用户从这里选择文件并把文件上载到服务器。 

 

 

文件上载 

 

 

 

 

公司:  

 

选择要上载的文件  

 

 

 

 

 

注意,标记有一个enctype属性,属性值是"MULTIPART/FORM-DATA"。还有个type为file的输入框是用来选择上传文件的。 

表单的action属性值是upjsp.jsp,这是将请求发送给upjsp.jsp文件。upjsp.jsp调用了名为UpBean的JavaBean。 

程序如下: 

 

 



  下面是UpBean的实现代码: 

import java.io.*; 

import javax.servlet.http.HttpServletRequest; 

import javax.servlet.http.HttpServletResponse; 

import javax.servlet.ServletInputStream; 



public class UpBean { 



public void doUpload(HttpServletRequest request) throws 

IOException { 

PrintWriter pw = new PrintWriter( 

new BufferedWriter(new FileWriter("test.txt"))); 

ServletInputStream in = request.getInputStream(); 



int i = in.read(); 

while (i != -1) { 

pw.print((char) i); 

i = in.read(); 



pw.close(); 





这个JavaBean把HttpServletRequest对象的表单原始数据写入test.txt文件. 

选择上传一个文本或者网页文件。点击“上载”按钮之后,表单就发送给了upjsp.jsp文件,一起发送的还有上传的文件。upjsp.jsp文件不会向浏览器发送任何应答内容,但它会生成一个test.txt文件。打开test.txt文件,我们可以看到上传文件的内容和一些上传的信息了。 

-----------------------------7d15340138 

Content-Disposition: form-data; name="Author" 



A. Christie 

-----------------------------7d15340138 

Content-Disposition: form-data; name="Company"Abisco 

-----------------------------7d15340138 

Content-Disposition: form-data; name="Filename"; filename="C:123dataabisco.html" 

Content-Type: text/html 



/*这里是上传的内容*/ 

可以看到,HTTP请求体内包含了所有的表单输入,包括上载的文件。这些输入数据的分隔由一个分隔符实现。分隔符由一系列的“-”字符和一个随机数字构成。在上面的例子中,分隔符为“-----------------------------7d15340138”。最后一个分隔符结束请求体,这个分隔符的后面多出两个“-”符号。 

对于非文件类型的输入数据,分隔符后面跟着下面这行内容:Content-Disposition: form-data; name=inputName。其中inputName是表单元素的名字。例如:Content-Disposition: form-data; name="Author"。在这行内容的后面,紧跟着两个连续的回车换行符和表单元素值。 

而对于文件型输入域,分隔符的后面有两行内容。第一行内容包含输入元素的名字以及上载文件在客户端的完整路径。注意Windows浏览器会设置文件路径,而Unix/Linux以及Mac浏览器只发送文件名字。


    
 
 

您可能感兴趣的文章:

  • 菜鸟问题:如何让jsp来获取与之关联的java 数据(赚分了)
  • jsp入门菜鸟向高手请教
  • 菜鸟用tomcat3.2,在他的root目录下建立了一个test1.jsp.用浏览器显示正常,但我后来删掉了,可用浏览器还可以看到test1.jsp,这是怎么回事
  • 问一个jsp的菜鸟问题
  • 关于jsp和javabean的菜鸟级问题,请大家帮个忙
  • 菜鸟又送分来了!请问各位大虾谁有《JSP Specification Version 1.0》的电子版?
  • 比较菜鸟的问题我怎么在jsp或javabean中得到前面提交过来的那一页的URL
  • 菜鸟的问题:如何用IE访问.jsp文件!
  • 菜鸟的问题:如何用IE访问.jsp文件!!加急!
  • 菜鸟问题:在jsp中,怎样到指定服务器下在.zip文件 一定送分
  • 散分先:(菜鸟问题)关于在jsp中调用xml中的数据
  • 一个jsp的菜鸟问题
  • help!!!菜鸟求助!如何配置iis与resin,才能让我的站点能支持jsp!
  • 菜鸟做了一个输入用户名和密码登陆的jsp,登陆成功一次以后,每次输入用户名,密码会自动产生,太不安全了,怎么让这种事情不再发生??
  • servlet和JSP有何区别?(菜鸟级)
  • 菜鸟提问!!关于jsp语法的小问题!!大虾请帮忙!!
  • 小弟是JAVA的菜鸟,请问哪里有有关JSP等JAVA教程的电子书籍可以下载!谢谢,帮助者都有分!!
  • 菜鸟请教JSP中文乱码问题
  • 菜鸟刚学jsp,还不知道怎么和sql server2000的数据库相连,我已经把odbc配好了,谁能给我一段和数据库相连的并显示所有数据的代码!菜鸟
  • jsp数据库查询结果处理?菜鸟散分(100)
  • 请问JSP里面怎样实现上传WORD和EXCEL文件,上传之后如何在IE里面调用显示!!!
  • 需要JSP上传程序
  • 有关jsp上传服务器的问题,请教各位高手(一定给分!!!!!!!!)
  • JSP怎么上传文档到服务器以及如何删除?
  • 关于Jsp文件上传的问题
  • 用jsp做的网站怎么解决用户个人相片上传的问题?
  • 请问封装好的jsp上传组件有哪些?在哪里下载?jspsmartupload除外
  • 请教:怎么用JSP把图片上传到服务器SQL Server数据库?
  • 在JSP中实现文件上传的问题。
  • JSP文件做好后如何上传?
  • 求救,JSP中文件的上传、下载问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • jsp显示server数据库的内容,如何实现定时更新jsp页面
  • 帮帮新手,jsp面向对象吗?想把c/s结构的引用用jsp改写,交互功能可以实现吗
  • 一个框界网爷包含上下两个网页a1.jsp和a2.jsp,怎么实现a1.jsp自身不变且提交数据到下面的a2.jsp呢?不胜感激,急..
  • 请问在jsp中如何实现相对路径?我在jsp文件中指定相对路径的文件,可是程序找不到!
  • 怎么用Jsp实现在页面实现树型结构?
  • ******"Servlet根据JSP视图的需求生成JavaBeans的实例并输出给JSP环境"如何实现上面这句话的效果??*******
  • 在ASP中可以轻易实现,不知道在JSP中能否实现?
  • 在jsp中如何实现页面的重新指向?
  • 在JSP中如何实现重新定向到其他页面?
  • 在JSP中如何实现MD5加密?
  • 怎么实现jsp中的页面跳转
  • JSP调用EJB如何实现耦合度最底
  • JSP的SESSION能存贮数组吗?我想实现“购物车”功能?
  • 〔help〕有关JSP实现注册用户中的类型问题?
  • 求助:用JSP实现统计来访人数,请问怎样实现?
  • 调试jsp的时如何实现像asp中的response.end的效果
  • 在jsp 中如何实现像asp 中的页面弹出式的菜单
  • ****怎样在局域网里实现JSP的访问!!!!******************
  • jsp实现点击help打开chm文件
  • JSP中如何实现动态select选项框?
  • JSP中清空cookie代码参考
  • 现有1.jsp、2.jsp、3.jsp三个文件,我怎么在3.jsp文件中得到1.jsp中输入的值?
  • 请问jsp和serlet之间怎么通讯,jsp和jsp之间呢?
  • 请问<%@include file="abc.jsp"%>与<jsp:include page="abc.jsp"/>之间的差别
  • response.sendRedirect("index.jsp") 和 <jsp:forward page="index.jsp"/>的区别?
  • 想把一个jsp转到另一个jsp页面,要穿参数,中文的(jsp变量)。谁教教我?!
  • aaa.jsp有如下链接,当单击该链接时将id值传递给bbb.jsp,怎样在bbb.jsp中引用这个id值?
  • jsp+bean还是jsp+ejb还是jsp+servlet还是asp+activex好?
  • 谁能告诉我,怎么调试jsp程序呀!我在jsp中调用java,但是Tomcat这家伙只会给我报jsp文件出错。这可怎么办呀?
  • jsp中如何获得当前jsp文件所在的目录,用request.getServletPath()得到的路径含有jsp文件名,有没有办法得到目录(不含文件名)?
  • 初学jsp,一个html调用一个jsp,这个jsp调用一个javaBean,已编译成类,最后如何部署(用j2sdkee)?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3