黄色电影一区二区,韩国少妇自慰A片免费看,精品人妻少妇一级毛片免费蜜桃AV按摩师 ,超碰 香蕉

Jsp+Servlet實現(xiàn)文件上傳下載 刪除上傳文件(三)

接著上一篇講:jsp+servlet實現(xiàn)文件上傳下載(二)--文件列表展示

本章來實現(xiàn)一下刪除已上傳文件,同時優(yōu)化了一下第一章中的代碼。

廢話少說,上代碼得意

1.調(diào)整列表頁面list.jsp

<%@ page contenttype="text/html;charset=utf-8" language="java" %> 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<html> 
<head> 
 <title>上傳文件列表</title> 
</head> 
<body> 
 
<h3>文件列表</h3> 
<table class="acclist_tab" border="1" bordercolor="#000000" cellspacing="0" cellpadding="2" style="border-collapse:collapse;"> 
 <tr> 
  <th>文件名</th> 
  <th>文件大小(kb)</th> 
  <th>操作</th> 
 </tr> 
 <c:if test="${not empty accessorylist}"> 
  <c:foreach items="${accessorylist}" var="acc"> 
   <tr> 
    <td>${acc.filename}</td> 
    <td>${acc.filesize}</td> 
    <td><a href="<%=request.getcontextpath()%>/removeuploadedfile?id=${acc.id}" rel="external nofollow" >刪除</a></td> 
   </tr> 
  </c:foreach> 
 </c:if> 
</table> 
</body> 
</html> 

2.新增fileutils工具類

package util; 
 
import java.io.file; 
 
/** 
 * 文件操作工具類 
 * 
 * @author xusucheng 
 * @create 2017-12-30 
 **/ 
public class fileutils { 
 public static boolean delete(string path){ 
  file file = new file(path); 
  if(!file.isfile()){ 
   system.out.println("刪除失敗,文件:"+path+"不存在!"); 
   return false; 
  } 
 
  file.delete(); 
 
  return true; 
 } 
} 

3.調(diào)整附件實體dao,新增load方法

package dao.upload; 
 
import entity.upload.entityaccessory; 
import util.dbutil; 
 
import java.math.bigdecimal; 
import java.sql.connection; 
import java.sql.preparedstatement; 
import java.sql.resultset; 
import java.sql.sqlexception; 
import java.util.arraylist; 
import java.util.list; 
 
/** 
 * 附件上傳dao 
 * 
 * @author xusucheng 
 * @create 2017-12-29 
 **/ 
public class accessorydao { 
 public static void add(entityaccessory entity) { 
  connection conn = dbutil.getconnection(); 
  string sql = "insert into tbl_accessory(file_name,file_size,file_ext_name,file_path) values(?,?,?,?)"; 
  try { 
   preparedstatement ps = conn.preparestatement(sql); 
   ps.setstring(1, entity.getfilename()); 
   ps.setdouble(2, entity.getfilesize()); 
   ps.setstring(3, entity.getfile_ext_name()); 
   ps.setstring(4, entity.getfilepath()); 
   ps.execute(); 
   //conn.commit(); 
 
   dbutil.close(null, ps, conn); 
  } catch (sqlexception e) { 
   e.printstacktrace(); 
  } 
 } 
 
 public static list<entityaccessory> list() { 
  connection conn = dbutil.getconnection(); 
  string sql = "select id,file_name,file_size,file_ext_name,file_path from tbl_accessory"; 
  list<entityaccessory> accessorylist = new arraylist<>(); 
  try { 
   preparedstatement ps = conn.preparestatement(sql); 
   resultset rs = ps.executequery(); 
 
   while (rs.next()) { 
    entityaccessory entity = new entityaccessory(); 
    entity.setid(rs.getint("id")); 
    entity.setfilename(rs.getstring("file_name")); 
    entity.setfilesize(new bigdecimal(rs.getdouble("file_size") / 1024).setscale(2, bigdecimal.round_half_up).doublevalue()); 
    entity.setfile_ext_name(rs.getstring("file_ext_name")); 
    entity.setfilepath(rs.getstring("file_path")); 
    accessorylist.add(entity); 
   } 
 
   dbutil.close(rs, ps, conn); 
  } catch (sqlexception e) { 
   e.printstacktrace(); 
  } 
 
  return accessorylist; 
 
 } 
 
 public static entityaccessory load(int id){ 
  connection conn = dbutil.getconnection(); 
  preparedstatement ps=null; 
  resultset rs=null; 
  entityaccessory entity = new entityaccessory(); 
  string sql = "select id, file_name,file_size,file_ext_name,file_path from tbl_accessory where id=?"; 
  try { 
   ps = conn.preparestatement(sql); 
   ps.setint(1,id); 
   rs = ps.executequery(); 
   while (rs.next()){ 
    entity.setid(rs.getint("id")); 
    entity.setfilename(rs.getstring("file_name")); 
    entity.setfilesize(rs.getdouble("file_size")); 
    entity.setfile_ext_name(rs.getstring("file_ext_name")); 
    entity.setfilepath(rs.getstring("file_path")); 
   } 
  } catch (sqlexception e) { 
   e.printstacktrace(); 
  }finally { 
   dbutil.close(rs,ps,conn); 
  } 
 
  return entity; 
 } 
 
 public static void remove(int id) { 
  connection conn = dbutil.getconnection(); 
  string sql = "delete from tbl_accessory where id=?"; 
  try { 
   preparedstatement ps = conn.preparestatement(sql); 
   ps.setint(1,id); 
   ps.execute(); 
   //conn.commit(); mysql默認(rèn)開啟了autocommit 
 
   dbutil.close(null,ps,conn); 
  } catch (sqlexception e) { 
   e.printstacktrace(); 
  } 
 } 
} 

4.新增刪除文件處理器,removeuploadedfileservlet

package servlet.upload; 
 
import dao.upload.accessorydao; 
import entity.upload.entityaccessory; 
import util.fileutils; 
 
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 java.io.ioexception; 
 
/** 
 * 刪除已上傳文件 
 * 
 * @author xusucheng 
 * @create 2017-12-30 
 **/ 
@webservlet("/removeuploadedfile") 
public class removeuploadedfileservlet extends httpservlet { 
 @override 
 protected void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception { 
  //string filepath = request.getparameter("filepath"); 
  int fileid = integer.valueof(request.getparameter("id")); 
  entityaccessory entity = accessorydao.load(fileid); 
  //刪除文件 
  fileutils.delete(entity.getfilepath()); 
  //刪除數(shù)據(jù)庫記錄 
  accessorydao.remove(fileid); 
 
  //跳回到文件列表頁 
  //request.getrequestdispatcher("listuploadedfiles").forward(request, response); 
  response.sendredirect("listuploadedfiles"); 
 } 
 
 @override 
 protected void doget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception { 
  dopost(request, response); 
 } 
 
 
} 

5.測試效果截圖

刪除前:

刪除后:

6.下集預(yù)告

實現(xiàn)文件下載功能

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持碩編程。

相關(guān)文章