项目结构
其他:
源代码:
package com.neu.dao;
public class FileInfoDao extends BaseDao {
public FileInfoDao() {
super("com.neu.dao.file_info");
}
}
package com.neu.service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.neu.dao.FileInfoDao;
public class FileInfoService {
private FileInfoDao fileInfoDao;
public FileInfoService() {
// TODO Auto-generated constructor stub
fileInfoDao=new FileInfoDao();
}
public boolean doSave(Map<String, String> map){
boolean flag=false;
try {
int row=fileInfoDao.insert("save", map);
if(row>0){
flag=true;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return flag;
}
public List<Map<String, String>> search(Map<String, String> map){
List<Map<String, String>> list=null;
try {
list=fileInfoDao.search("search", map);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
public Map<String,String> searchById(Map<String,String> map){
Map<String,String> item=null;
try {
List<Map<String, String>> list=fileInfoDao.search("search", map);
if(list!=null && list.size()>0){
item=list.get(0);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return item;
}
}
package com.neu.servlet.li;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.FileUtils;
import com.neu.service.FileInfoService;
import com.neu.servlet.BaseServlet;
/**
* Servlet implementation class DownServlet
*/
@WebServlet("/DownServlet")
public class DownServlet extends BaseServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public DownServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
FileInfoService service=new FileInfoService();
Map<String, String> item=service.searchById(param);
System.out.println(item);
String fileName=item.get("file_name");
String path=request.getServletContext().getRealPath("/files");
File file=new File(path+"/"+fileName);
fileName=new String(fileName.getBytes("GBK"),"ISO-8859-1");
response.setHeader("content-disposition",
"attachment;filename="+fileName);
OutputStream out=response.getOutputStream();
FileUtils.copyFile(file, out);
//out.close();
}
}
package com.neu.servlet.li;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
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;
import com.neu.service.FileInfoService;
import com.neu.util.ImageUtil;
/**
* Servlet implementation class FileUpServlet
*/
@WebServlet("/FileUpServlet")
public class FileUpServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public FileUpServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// request.setCharacterEncoding("UTF-8");
String path=request.getServletContext().getRealPath("/files");
DiskFileItemFactory factory=new DiskFileItemFactory();
ServletFileUpload up=new ServletFileUpload(factory);
boolean flag=false;
try {
List<FileItem> items=up.parseRequest(request);
Map<String, String> map=new HashMap<String,String>();
for (FileItem item : items) {
if(item.isFormField()){
String name=item.getFieldName();
String value=map.get(name);
if(value==null){
map.put(name, item.getString("UTF-8"));
}else{
map.put(name, value+","+item.getString("utf-8"));
}
}else{
String fileName=item.getName();
if(fileName==null || fileName.trim().length()==0){
continue;
}
String type=fileName.substring(fileName.lastIndexOf(".")+1);
item.write(new File(path,fileName));
map.put("file_type", type);
map.put("file_name", fileName);
map.put("file_image", ImageUtil.getImage(type));
}
}
FileInfoService service=new FileInfoService();
flag=service.doSave(map);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(flag){
response.sendRedirect("show.jsp");
}else{
response.sendRedirect("fail.jsp");
}
}
}
package com.neu.servlet.li;
import com.neu.dao.BaseDao;
import com.neu.service.FileInfoService;
import com.neu.servlet.BaseServlet;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class ShowFileServlet
*/
@WebServlet("/ShowFileServlet")
public class ShowFileServlet extends BaseServlet {
/**
* Default constructor.
*/
public ShowFileServlet() {
// TODO Auto-generated constructor stub
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
FileInfoService service=new FileInfoService();
List<Map<String, String>> list=
service.search(param);
session.setAttribute("items", list);
response.sendRedirect("show.jsp");
}
}
package com.neu.util;
public class ImageUtil {
public ImageUtil() {
}
public static String getImage(String type) {
String image = "del.gif";
if ("exe".equals(type)) {
image="add.gif";
}else if("rar".equals(type)||"zip".equals(type)){
image="delete.gif";
}
return image;
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.neu.dao.file_info">
<insert id="save" parameterType="map">
insert into file_info(file_id,file_name,file_image,file_type,file_content)
values(seq_file_id.nextval,#{file_name},#{file_image},#{file_type},#{file_content})
</insert>
<select id="search" resultType="com.neu.util.MyMap" parameterType="map">
select * from file_info where 1=1
<if test="file_id != null and file_id !=''">
and file_id =${file_id}
</if>
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAlias type="java.util.Map" alias="map"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:shanke" />
<property name="username" value="scott" />
<property name="password" value="tiger" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/neu/dao/file_info.xml"/>
</mappers>
</configuration>
file.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="FileUpServlet" method="post" enctype="multipart/form-data">
文件:<input type="file" name="file_name"><br>
描述:<textarea rows="5" cols="10" name="file_content"></textarea><br>
<button type="submit">提交</button>
</form>
</body>
</html>
show.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
*{
font-size: 12px;
}
#main{
width: 500px;
height: 400px;
margin: 0px auto;
border: 1px solid black;
}
.item{
width: 120px;
height: 140px;
float: left;
margin: 2px;
}
.item table{
width: 100%;
}
.item td{
text-align: center;
}
.item img{
width: 80px;
height: 80px;
}
</style>
</head>
<body>
<a href="ShowFileServlet">显示所有</a>
<div id="main">
<c:forEach var="item" items="${sessionScope.items }">
<div class="item">
<table>
<tr>
<td>
<img alt="" src="images/${item.file_image }">
</td>
</tr>
<tr>
<td>${item.file_name }</td>
</tr>
<tr>
<td>
<a href="DownServlet?file_id=${item.file_id }">下载</a>
</td>
</tr>
</table>
</div>
</c:forEach>
</div>
</body>
</html>
test.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
#main{
width: 100%;
height: 100%;
background-color: gray;
}
</style>
</head>
<body>
<%
//登录成功
map.put("status","1");
session.setAttribute("item", map);
Map map=session.getAttribute("item");
Object o=map.get("status");
%>
<% if(o!=null){ %>
<%}else{%>
<%} %>
<div id="main">
<div id="msg">
dasfsaf<br>
asdfasfas<br>
asfdasdf<br>
</div>
</div>
</body>
</html>