最近跟着浪曦视频的风中叶老师学习struts2,这两天主要学习文件上传,为了能深入理解,并以备后用,把学到的东西写出来,希望能和大家共同进步。
文件上传实际上是对文件的IO操作,从请求中获取输入流,接着从输入流(字符流)中读取数据,显示在页面上。
首先第一节是简单的文件上传,理解上传的底层实现。
两个简单的页面simpleupload.jsp和显示页面result.jsp,要被上传的文件ss.txt.(不需其他jar包)。
上传文件时要注意:form的method属性为post,enctype为multipart/form-data
simpleupload.jsp
<form action="upload/result.jsp" method="post" enctype="multipart/form-data">
username:<input type="text" name="username"><br>
password:<input type="password" name="password"><br>
file:<input type="file" name="file"><br>
<input type="submit" name="submit" value=" submit ">
result.jsp
为了方便,代码直接写到jsp内了
<body>
<!--
information:<%=request.getParameter("info") %><br>
file:<%=request.getParameter("file") %>
-->
<%
//获取字节流
InputStream is=request.getInputStream();
//字节流转换为字符流
BufferedReader br=new BufferedReader(new InputStreamReader(is));
//读取BufferedReader中数据,并显示到页面
String buffer=null;
while((buffer=br.readLine())!=null)
{
out.print(buffer+"<br>");
}
%>
</body>
ss.txt 内容
你好
你好
你好
启动服务器,测试,下面是上传页面
结果页面:
显示结果和http协议有关,以上即实现了简单的文件上传。