package com.res.util;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class UploadHandleServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全
String savePath = this.getServletContext().getRealPath("/WEB-INF/upload");
File file = new File(savePath);
if(!file.exists()&&!file.isDirectory()){
System.out.println("目录或文件不存在!");
file.mkdir();
}
//消息提示
String message = "";
try {
//使用Apache文件上传组件处理文件上传步骤:
//1、创建一个DiskFileItemFactory工厂
DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
//2、创建一个文件上传解析器
ServletFileUpload fileUpload = new ServletFileUpload(diskFileItemFactory);
//解决上传文件名的中文乱码
fileUpload.setHeaderEncoding("UTF-8");
//3、判断提交上来的数据是否是上传表单的数据
if(!fileUpload.isMultipartContent(request)){
//按照传统方式获取数据
return;
}
//4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项
List<FileItem> list = fileUpload.parseRequest(request);
for (FileItem item : list) {
//如果fileitem中封装的是普通输入项的数据
if(item.isFormField()){
String name = item.getFieldName();
//解决普通输入项的数据的中文乱码问题
String value = item.getString("UTF-8");
String value1 = new String(name.getBytes("iso8859-1"),"UTF-8");
System.out.println(name+" "+value);
System.out.println(name+" "+value1);
}else{
//如果fileitem中封装的是上传文件,得到上传的文件名称,
String fileName = item.getName();
System.out.println(fileName);
if(fileName==null||fileName.trim().equals("")){
continue;
}
//注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如: c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt
//处理获取到的上传文件的文件名的路径部分,只保留文件名部分
fileName = fileName.substring(fileName.lastIndexOf(File.separator)+1);
//获取item中的上传文件的输入流
InputStream is = item.getInputStream();
//创建一个文件输出流
FileOutputStream fos = new FileOutputStream(savePath+File.separator+fileName);
//创建一个缓冲区
byte buffer[] = new byte[1024];
//判断输入流中的数据是否已经读完的标识
int length = 0;
//循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据
while((length = is.read(buffer))>0){
//使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\" + filename)当中
fos.write(buffer, 0, length);
}
//关闭输入流
is.close();
//关闭输出流
fos.close();
//删除处理文件上传时生成的临时文件
item.delete();
message = "文件上传成功";
}
}
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
message = "文件上传失败";
}
request.setAttribute("message",message);
request.getRequestDispatcher("/message.jsp").forward(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
售后管理系统主要包含以下功能: 用户功能: 用户注册与登录:用户可以注册新账号并使用账号登录系统。 个人信息管理:用户可以查看和修改个人信息,包括姓名、联系方式等。 售后申请:用户可以提交售后申请,包括订单号、问题描述、照片等。 消息通知:系统会向用户发送售后处理进展的消息通知。 历史售后记录:用户可以查看历史的售后申请记录和处理进展。 管理员功能: 管理员登录:管理员可以使用设定的账号密码登录后台。 售后申请处理:管理员可以查看和处理用户提交的售后申请,包括审核、受理和关闭等操作。 售后记录管理:管理员可以查看和管理售后记录,包括查询、导出数据等操作。 统计分析:管理员可以根据时间、申请类型等条件进行统计
资源推荐
资源详情
资源评论
收起资源包目录
java毕设课设ssm售后管理系统项目源码+sql数据库文件 (823个子文件)
all-wcprops 3KB
all-wcprops 3KB
all-wcprops 2KB
all-wcprops 2KB
all-wcprops 1KB
all-wcprops 1KB
all-wcprops 1KB
all-wcprops 524B
all-wcprops 373B
all-wcprops 280B
all-wcprops 274B
all-wcprops 272B
all-wcprops 216B
all-wcprops 216B
all-wcprops 92B
UserAction.class 6KB
UserAction.class 6KB
OrderAction.class 5KB
FeedbackAction.class 5KB
OrderAction.class 5KB
FeedbackAction.class 5KB
UploadHandleServlet.class 5KB
DeviceAction.class 5KB
UploadHandleServlet.class 4KB
LoginAction.class 4KB
FileUploadAction.class 4KB
ActivityAction.class 4KB
ActivityAction.class 4KB
LoginAction.class 4KB
FileUploadAction.class 4KB
AddressAction.class 4KB
AddressAction.class 4KB
DeviceAction.class 4KB
UserServiceImpl.class 4KB
UserServiceImpl.class 3KB
FeedbackServiceImpl.class 2KB
ActivityServiceImpl.class 2KB
ActivityServiceImpl.class 2KB
FeedbackServiceImpl.class 2KB
AddressServiceImpl.class 2KB
AddressServiceImpl.class 2KB
DeviceServiceImpl.class 2KB
DeviceServiceImpl.class 2KB
OrderServiceImpl.class 2KB
OrderServiceImpl.class 2KB
Feedback.class 2KB
Feedback.class 2KB
CharFilter.class 2KB
User.class 2KB
User.class 2KB
CharFilter.class 2KB
LoginFilter.class 2KB
Order.class 2KB
Order.class 2KB
MyFileUtil.class 2KB
MyFileUtil.class 2KB
LoginFilter.class 2KB
Pree.class 2KB
Pree.class 2KB
BaseService.class 2KB
BaseService.class 2KB
CutPageBean.class 1KB
CutPageBean.class 1KB
Device.class 1KB
Address.class 1KB
Address.class 1KB
Activity.class 1KB
Activity.class 1KB
Device.class 1KB
IntConverter.class 976B
FeedbackVo.class 962B
FeedbackVo.class 962B
IntConverter.class 951B
OrderVo.class 950B
OrderVo.class 950B
DateConverter.class 905B
DateConverter.class 880B
UserService.class 736B
UserService.class 736B
FeedbackService.class 653B
ActivityService.class 653B
FeedbackService.class 653B
ActivityService.class 653B
AddressService.class 646B
AddressService.class 646B
DeviceService.class 639B
DeviceService.class 639B
OrderService.class 632B
OrderService.class 632B
.classpath 836B
org.eclipse.wst.common.component 479B
org.eclipse.wst.jsdt.ui.superType.container 49B
bootstrap.css 120KB
bootstrap.min.css 81KB
style.css 69KB
ueditor.css 45KB
ueditor.min.css 34KB
jquery-ui-1.8.22.custom.css 33KB
entypo-icon.css 23KB
video-js.css 22KB
共 823 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
竹山全栈
- 粉丝: 2132
- 资源: 257
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功