社区
Web 开发
帖子详情
谁有用Servlet或JavaBean实现文件上传的源码?
rainbow2k
2002-05-09 05:57:06
多谢了。
...全文
64
2
打赏
收藏
谁有用Servlet或JavaBean实现文件上传的源码?
多谢了。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lianyunzxp
2002-05-09
打赏
举报
回复
Faint.........
怎么乱七八糟的呀
呵呵,自己整理一下了,不好意思
lianyunzxp
2002-05-09
打赏
举报
回复
搜索一下,挺多的
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class UploadFileServlet extends HttpServlet
{
public void doPost(HttpServletRequest req,
HttpServletResponse res)
throws IOException, ServletException{
final int NONE=0;
final int DATAHEADER=1;
final int FILEDATA=2;
final int FIELDDATA=3;
int totalbytes=req.getContentLength();
byte[] b=new byte[totalbytes];
String contentType=req.getContentType();
String fieldname="";
String fieldvalue="";
String filename="";
String boundary="";
String lastboundary="";
int fileSize=0;
Hashtable formfields=new Hashtable();
int pos =contentType.indexOf("boundary=");
String fileID;
if(pos!=-1){
pos+="boundary=".length();
boundary="--"+contentType.substring(pos);
lastboundary=boundary+"--";
}
int state=NONE;
DataInputStream in=new DataInputStream(req.getInputStream());
in.readFully(b);
in.close();
String reqcontent=new String(b);
BufferedReader reqbuf=new BufferedReader(new StringReader(reqcontent));
boolean flag=true;
int i=0;
while(flag==true){
String s=reqbuf.readLine();
if(s==lastboundary||s==null)break;
switch(state){
case NONE:
if(s.startsWith(boundary)){
state=DATAHEADER;
i+=1;
}
case DATAHEADER:
pos=s.indexOf("filename=");
if(pos==-1){
pos=s.indexOf("name=");
pos+="name=".length()+1;
s=s.substring(pos);
int l=s.length();
s=s.substring(0,l-1);
fieldname=s;
state=FIELDDATA;
}
else{
String temp=s;
pos=s.indexOf("filename=");
pos+="filename=".length()+1;
s=s.substring(pos);
int l=s.length();
s=s.substring(0,l-1);
pos=s.lastIndexOf("\\");
s=s.substring(pos+1);
filename=s;
pos=byteIndexOf(b,temp,0);
b=subBytes(b,pos+temp.getBytes().length+2,b.length);
s=reqbuf.readLine();
File f=new File(filename);
DataOutputStream fileout=new DataOutputStream(new FileOutputStream(f));
b=subBytes(b,s.getBytes().length+4,b.length);
pos=byteIndexOf(b,boundary,0);
b=subBytes(b,0,pos-1);
fileout.write(b,0,b.length-1);
fileSize=b.length-1;
state=FILEDATA;
}
break;
case FIELDDATA:
s=reqbuf.readLine();
fieldvalue=s;
formfields.put(fieldname,fieldvalue);
state=NONE;
break;
case FILEDATA:
while((!s.startsWith(boundary))&&(!s.startsWith(lastboundary))){
s=reqbuf.readLine();
if(s.startsWith(boundary)){
state=DATAHEADER;
}
else break;
break;
}
}
}
res.setContentType("text/html;charset=gb2312");
PrintWriter out=res.getWriter();
out.println("<html>");
out.println("<head><title>文件上传结果</title></head>");
out.println("<body>");
out.println("<h1>文件上传结果</h1><hr>");
out.println("ID为"+formfields.get("FileID")+"的文件"+filename+"已经上传!"+"文件长度:"+fileSize+"字节");
out.println("</body>");
out.println("</html>");
}
private static int byteIndexOf(byte[] b,String s,int start)
{
return byteIndexOf(b,s.getBytes(),start);
}
private static int byteIndexOf(byte[] b,byte[] s,int start)
{
int i;
if(s.length==0)
{
return 0;
}
int max=b.length-s.length;
if(max<0)
return -1;
if(start>max)
return -1;
if(start<0)
start=0;
search:
for(i=start;i<=max;i++)
{
if(b[i]==s[0])
{
int k=1;
while(k<s.length)
{
if(b[k+i]!=s[k])
{
continue search;
}
k++;
}
return i;
}
}
return -1;
}
private static byte[] subBytes(byte[] b,int from ,int end)
{
byte[]result=new byte[end-from];
System.arraycopy(b,from,result,0,end-from);
return result;
}
private static String subBytesString(byte[] b,int from, int end)
{
return new String(subBytes(b,from,end));
}
}
jsp+
servlet
+
javaBean
实现
MVC
源码
jsp+
servlet
+
javaBean
实现
MVC
源码
jsp+
servlet
+
javaBean
实现
MVC
源码
jsp+
servlet
+
javaBean
实现
MVC
源码
jsp+
servlet
+
javaBean
实现
MVC
源码
jsp+
servlet
+
javaBean
实现
MVC
源码
jsp+
servlet
+
javaBean
实现
MVC
源码
jsp+...
JAVA 语言 使用 jsp+
servlet
+
javaBean
实现
MVC
源码
jsp+
servlet
+
javaBean
实现
MVC
源码
jsp+
servlet
+
javaBean
实现
MVC
源码
jsp+
servlet
+
javaBean
实现
MVC
源码
jsp+
servlet
+
javaBean
实现
MVC
源码
jsp+
servlet
+
javaBean
实现
MVC
源码
jsp+
servlet
+
javaBean
实现
MVC
源码
jsp+...
JSP
源码
——jsp+
servlet
+
javaBean
实现
MVC_jspmvc.zip
【JSP
源码
——jsp+
servlet
+
javaBean
实现
MVC】是基于Java Web技术构建的一种经典MVC(Model-View-Controller)模式的应用实例。在Web开发中,MVC模式被广泛采用,它将应用程序的业务逻辑、数据处理和用户界面分离,...
jsp+
servlet
+
javabean
实现
网上商城项目完整
源码
网上商城项目是现代电子商务的重要组成部分,本项目采用经典的JSP、
Servlet
和
JavaBean
技术进行
实现
,提供了完整的
源码
,旨在帮助开发者理解和学习如何构建一个功能完备、界面美观的网上购物平台。下面将对这个项目的...
java web 利用
javabean
实现
文件上传
源码
例程
在这个特定的例程中,我们关注的是如何利用
JavaBean
实现
文件上传
功能。
JavaBean
是一种可重用的Java组件,通常用于封装数据和业务逻辑。
文件上传
是Web应用中常见的功能,允许用户从他们的设备向服务器发送文件。在...
Web 开发
81,122
社区成员
341,743
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章