package upload;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoadFile extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 3089316329737765177L;
public void doGet(HttpServletRequest request,HttpServletResponse resopnse) throws IOException{
doPost(request,resopnse);
}
public void doPost(HttpServletRequest request,HttpServletResponse resopnse) throws IOException{
try {
upLoad(request);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private boolean upLoad(HttpServletRequest request) throws Exception {
int len = -1;
byte[] bt = new byte[4096];
String sperator = null;
String fileName = null;
String savePath = "/";
//控制上传文件的大小
long fileSize = -1;
request.setCharacterEncoding("utf-8");
ServletInputStream in = request.getInputStream();
len = in.readLine(bt, 0, bt.length);
if (len != -1) {
sperator = new String(bt, 0, len);
System.out.println(sperator);
sperator = sperator.substring(0, 28);
System.out.println(sperator);
len = -1;
}
do {
len = in.readLine(bt, 0, bt.length);
String s = new String(bt, 0, len);
System.out.println(s);
int index = s.indexOf("filename=\"");
if (index != -1) {
s = s.substring(index + 10);
index = s.indexOf("\"");
s = s.substring(0, index);
fileName = s;
len = -1;
}
} while (len != -1);
//保存原文件名文件
FileOutputStream out = new FileOutputStream(savePath + fileName);
//生成下载文件
FileOutputStream outDownLoadFile = new FileOutputStream(savePath + "down_load.jpg");
len = in.readLine(bt, 0, bt.length);
String s = new String(bt, 0, len);
System.out.println(s);
int i = s.indexOf("Content-Type:");
if (i == -1) {
System.out.print("is not file");
return false;
} else {
in.readLine(bt, 0, bt.length); // delete one line space
len = -1;
}
long trancsize = 0;
try {
len = in.readLine(bt, 0, bt.length);
while (len != -1) {
s = new String(bt, 0, len);
if (s.length() > 28) {
s = s.substring(0, 28);
if (s.equals(sperator)) {
System.out.println(s);
break;
}
}
if (fileSize != -1) {
if (trancsize >= fileSize) {
throw new Exception("file is too big");
}
}
out.write(bt, 0, len);
outDownLoadFile.write(bt, 0, len);
trancsize += len;
len = in.readLine(bt, 0, bt.length);
}
out.close();
outDownLoadFile.close();
return true;
} catch (Exception e) {
out.close();
outDownLoadFile.close();
File tmp = new File(savePath, fileName);
if (!tmp.delete()) {
System.out.println(e.getMessage() + ",clear error");
}
return false;
}
}
}
flex 文件上传下载完整代码(修正版)
5星 · 超过95%的资源 需积分: 33 106 浏览量
2009-11-13
22:28:07
上传
评论 8
收藏 4.7MB ZIP 举报
To9m
- 粉丝: 91
- 资源: 9
最新资源
- 卡方数据.sav
- Python实现基于Django框架的二手物品购物网站设计源码+数据库.zip
- 基于Python和Django的二手物品购物网站设计源码+数据库脚本.zip
- 【计算机毕业设计】基于h5的移动网赚项目小程序【源码+lw+部署文档+讲解】
- 【计算机毕业设计】基于ssm-vue的oa系统设计与实现【源码+lw+部署文档+讲解】
- 基于pytorch实现的YOLOV5+SORT的车辆行人目标识别及追踪系统源码.zip
- 【计算机毕业设计】基于servlet+jdbc的在线选房系统设计与实现【源码+lw+部署文档+讲解】
- 投身科技创新,勇担时代先锋.pptx
- 【计算机毕业设计】基于SSM的仿微博系统的设计与实现【源码+lw+部署文档+讲解】
- 使用 Web Components 实现,遵循 Material You 设计规范的 Web 前端组件库
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
- 4
- 5
- 6
前往页