把一个指定的文件上传到服务器,通常依靠JSP技术完成,需要使用到两个JSP页面。第一个JSP页面是选择要上传的文件,第二个JSP页面是从客户端获取该文件里面的信息,并把这些信息以客户端相同的格式保存在服务器端,该页面主要为功能处理页面。
第一个页面的实现必须含有FILE类型的表单,并且表单的enctype的属性必须为"muldtipart/form-data"。
第二个页面要使用内置对象request调用方法getInputStream()获得一个输入流,通过这个输入流读取客户上传的全部信息,如上传文件的 名字,文件的大小,文件的类型。根据request所获得的信息创建一个数据输出流对象,把信息写到一个指定的文件内
第一个文件内容如下:
<body>
<form method="post" action="file_14.jsp" enctype="multipart/form-data">
<input type="file" name="file1" size="50" /><br>
<input type="submit" value="上传" />
</form>
第二个文件内容如下:
<%@ page contentType="text/html; charset='utf-8'" %>
<%@ page import="java.io.*" %>
<%@ page import ="java.util.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import = "javax.servlet.http.*" %>
<body>
<%
int MAX_SIZE = 102400 * 102400; //定义上传文件的最大字节
String rootPath; //创建跟路径的保存变量
DataInputStream in = null; //声明文件读入类
FileOutpubStream fileOut = null; //
String remoteAddr = request.getRemoteAddr(); //取得客户端的网络地址
String servName = request.getServerName(); //获得服务器的名字
out.print("serverName=" + serverName + "<br>");
out.print("request.getServletPath() = " + request.getServletPath() + "<br>")