以下代码演示了在JSP页面中使用输入流和输出流实现文件上传
1. 创建upload.jsp页面:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<html>
<head>
<title>一个简单的文件上传</title>
</head>
<body>
<form action="doUpload.jsp" method="post">
标题:<input type="text" name="title"><br>
文件位置:<input type="file" name="mfile"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
2. 创建doUpload.jsp页面
<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="GBK"%>
<html>
<head>
<title>My JSP 'doUpload.jsp' starting page</title>
</head>
<body>
<%
request.setCharacterEncoding("GBK");
String title = request.getParameter("title"); //获取页面提交的标题信息
String myFile = request.getParameter("mfile"); //获取页面提交的文件
int indexOf = myFile.lastIndexOf("//"); //获取最后一个“/”所在的索引位
String fileName = myFile.substring(indexOf); //获取文件上传的文件名
//创建输出流把指定的文件写入WEB工程的upload目录下(需要在WebRoot目录下创建upload目录)。
FileOutputStream fos = new FileOutputStream(request.getRealPath("/upload/"+fileName));
//创建输入流读取指定文件
java.io.FileInputStream fis = new java.io.FileInputStream(new java.io.File(myFile));
byte[] buffer = new byte[1024];
int len = 0;
while ((len = fis.read(buffer)) > 0) //循环读取文件到输出流
{
fos.write(buffer , 0 , len); //使用输出流输出文件。
}
fis.close();
fos.close();
%>
<img src="../upload<%=fileName %>"> <!--显示上传图片 -->
</body>
</html>