////servlet 文件
package com.jspservletcookbook;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.oreilly.servlet.*; 还要把这个包放在LIB的目录中去.
import com.oreilly.servlet.multipart.*;
import java.util.*;
public class UploadServlet1 extends HttpServlet {
String web;
public void init(){
web=this.getServletContext().getRealPath("/")+"data";
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
throw new ServletException("GET method used with"+getClass().getName()+":post method requestird.");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
MultipartRequest mpr=new MultipartRequest(
request,web,100*1024*1024
);
Enumeration enum=mpr.getFileNames();
response.setContentType("text/html");
PrintWriter out=response.getWriter();
for(int i=1;enum.hasMoreElements();i++){
out.println("Then name of upload file"+i+"is: "+mpr.getFilesystemName((String)enum.nextElement())+"<br><br>");
}
}
}
前台页面
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>LoadFile.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
</head>
<body>
<TABLE border="0">
<form action="UploadServlet1" method="post" enctype="multipart/form-data"> //必须这样写
<td valign="top">
<tr>
<STRONG>
Please choose your document:
</STRONG>
</td>
<td>
<INPUT type="file" name="file1">
</td>
</tr>
<TR>
<TD>
<INPUT type="submit" value="Upload File">
</TD>
</TR>
</form>
</TABLE>
</body>
</html>
==================================================================================================================
upload.jsp
<%@ page language="java" import="java.util.*,java.sql.*,java.io.*,java.util.*,javax.servlet.*,javax.servlet.http.*" pageEncoding="gb2312"%>
<html>
<head>
<title>upFile</title>
</head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<body bgcolor=#ffffff>
<%//response.setContentType("gb2312");
int MAX_SIZE=102400*102400;
String rootPath;
DataInputStream in=null;
FileOutputStream fileOut=null;
String remoteAddr=request.getRemoteAddr();
String serverName=request.getServerName();
String realPath=request.getRealPath(serverName);
realPath=realPath.substring(0,realPath.lastIndexOf("\\"));
rootPath=realPath+"\\upload\\";
String contentType=request.getContentType();
try{
if(contentType.indexOf("multipart/form-data")>=0){
in=new DataInputStream(request.getInputStream());
int formDataLength=request.getContentLength();
if(formDataLength>MAX_SIZE){
out.println("<P>上传的文件字节数不可以超过"+MAX_SIZE+"</P>");
return;
}
byte dataBytes[]=new byte[formDataLength];
int byteRead=0;
int totalBytesRead=0;
while(totalBytesRead<formDataLength){
byteRead=in.read(dataBytes,totalBytesRead,formDataLength);
totalBytesRead+=byteRead;
}
String file=new String (dataBytes);
String saveFile=file.substring(file.indexOf("filename=\"")+10);
saveFile=saveFile.substring(0,saveFile.indexOf("\n"));
saveFile=saveFile.substring(saveFile.lastIndexOf("\\")+1,saveFile.indexOf("\""));
int lastIndex=contentType.lastIndexOf("=");
String boundary=contentType.substring(lastIndex+1,contentType.length());
String fileName=rootPath+saveFile;
int pos;
pos=file.indexOf("filename=\"");
pos=file.indexOf("\n",pos)+1;
pos=file.indexOf("\n",pos)+1;
pos=file.indexOf("\n",pos)+1;
int boundarLocation=file.indexOf(boundary,pos)-4;
int startPos=((file.substring(0,pos)).getBytes()).length;
int endPos=((file.substring(0,boundarLocation)).getBytes()).length;
File checkFile=new File(fileName);
if(checkFile.exists()){
out.println("<p>"+saveFile+"文件已经存在.</p>");
}
File fileDir=new File(rootPath);
if(!fileDir.exists()){
fileDir.mkdirs();
}
fileOut=new FileOutputStream(fileName);
fileOut.write(dataBytes,startPos,(endPos-startPos));
fileOut.close();
// String savefile=new String(request.getParameter("FILE1").getBytes("iso-8859-1"),"gb2312");
out.println("<p>http://localhost:7917/company/upload"+saveFile+"文件成功上载.</p>"+formDataLength);
}else{
String conent=request.getContentType();
out.println("<p>上传的数据类型不是是multipart/form-data</p>");
}
}catch(Exception e){
throw new ServletException(e.getMessage());
// out.println("上传文件Error!!!!");
}
%>
<br>
</body>
</html>
前台页面
<html>
<head>
<title>上传文件</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
</head>
<body bgcolor="#ffffff" text="#000000">
<div align="center">
<p><b><font color="#ff6600">上传文件</font></b></p>
<FORM METHOD="POST" ACTION="upload.jsp" ENCTYPE="multipart/form-data">
<INPUT TYPE="FILE" NAME="FILE1" SIZE="50"><BR>
<INPUT TYPE="SUBMIT" VALUE="上传">
</FORM>
</div>
</body>
</html>
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
重要JAVA代码.rar (47个子文件)
重要JAVA代码
下载文件.txt 668B
dom
TestDOMParser.java 3KB
new.xml 233B
student.xml 810B
lee
TestDOMParser.class 2KB
DOMCreate.class 3KB
DOMGenerate.class 3KB
DOMCreate.java 2KB
lib
xml-apis.jar 122KB
xercesImpl.jar 987KB
build.xml 641B
中文处理问题.txt 537B
验证码的生成.txt 7KB
如何把一个文件上传下到一个指定位置.txt 4KB
Html_Jsp页面如何对XML内容分页显示.txt 2KB
Hibernate.txt 734B
Servelt如何处理前台中的BASIC验证.txt 2KB
Servlet中如何处理多个文字表单提交.txt 1KB
SQL.txt 1KB
jsp分页.txt 3KB
如何从文件夹中把所有文件和文件夹分别列出来.txt 1KB
读取文件内容.txt 2KB
按扩展名列出所有文件.txt 1KB
Javabean+Jsp.txt 2KB
Spring.txt 448B
数据库的连接.txt 433B
Servelt如何访问文本文件和属性文件.txt 2KB
sax
XMLContentHandler.java 3KB
student.xml 810B
SAXParser.java 1KB
lee
XMLContentHandler.class 3KB
SAXParser.class 1KB
lib
xercesImpl.jar 987KB
build.xml 641B
Servlet中的访问记数器.txt 2KB
Cookie.txt 3KB
文件上传.txt 7KB
jsp.txt 1KB
如何给文件写内容.txt 1KB
JSTL.txt 3KB
Servelt中处理缓存.txt 201B
Jsp标签.txt 2KB
Servlet中如何从WEB的配置文件中读取属性值.txt 1KB
china.txt 343B
JavaScript.txt 213B
Servelt在设置的时间内自动转发页面.txt 598B
Session购物车.txt 2KB
共 47 条
- 1
资源评论
- su5537662552012-11-01没什么用啊!都是一个java类!唉!不行啊
- MFCLIN2014-03-28很好的资源,可以自学一下
- chung9619773052018-02-12多谢分享!!
akanglucky
- 粉丝: 1
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
- 常用工具集参考用于图像等数据处理
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功