佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫 > JSP servlet實(shí)現(xiàn)文件上傳下載和刪除

JSP servlet實(shí)現(xiàn)文件上傳下載和刪除

熱門標(biāo)簽:Mysql連接數(shù)設(shè)置 科大訊飛語音識(shí)別系統(tǒng) Linux服務(wù)器 團(tuán)購網(wǎng)站 電子圍欄 銀行業(yè)務(wù) 阿里云 服務(wù)器配置

本文實(shí)例為大家分享了Android九宮格圖片展示的具體代碼,供大家參考,具體內(nèi)容如下

由于存儲(chǔ)空間,對(duì)一般用戶而言,就是用來操作存儲(chǔ)文件的,所以這兩天,特意看了一下windows下用servlet實(shí)現(xiàn)文件上傳、下載和刪除,下面是詳細(xì)代碼說明

上傳:

用的是commons-fileupload-1.2.2.jar和commons-io-2.0.1.jar組件,可以去apache官網(wǎng)上去下載,然后放到WebRoot/WEB-INF/lib目錄下 

upload.html

 html> 
head> 
  meta http-equiv="Content-Type" content="text/html; charset=GBK"> 
  title>File upload/title> 
/head> 
body> 
!-- action="fileupload"對(duì)應(yīng)web.xml中servlet-mapping>中url-pattern>的設(shè)置.--> 
!-- 必須是multipart的表單數(shù)據(jù),才能完整的傳遞文件數(shù)據(jù) --> 
  form name="myform" action="fileupload" method="post" 
    enctype="multipart/form-data"> 
    File:br> 
    input type="file" name="myfile">br> 
    br> 
    input type="submit" name="submit" value="Commit"> 
  /form> 
/body> 
/html> 

web.xml里加上下面幾行:

servlet> 
 servlet-name>Upload/servlet-name> 
 servlet-class>am.demo.Upload/servlet-class> 
 /servlet> 
 servlet-mapping> 
 servlet-name>Upload/servlet-name> 
 url-pattern>/fileupload/url-pattern> 
 /servlet-mapping> 

src目錄下新建文件Upload.java:

package am.demo; 
 
import java.io.File; 
import java.io.IOException; 
import java.util.Iterator; 
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.disk.DiskFileItemFactory; 
import org.apache.commons.fileupload.servlet.ServletFileUpload; 
 
@SuppressWarnings("serial") 
public class Upload extends HttpServlet { 
  private String uploadPath = "d://temp"; // 上傳文件的目錄 
 
  @SuppressWarnings("unchecked") 
  public void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws IOException, ServletException { 
    try { 
      // Create a factory for disk-based file items 
      DiskFileItemFactory factory = new DiskFileItemFactory(); 
 
 
      // Create a new file upload handler 
      ServletFileUpload upload = new ServletFileUpload(factory); 
 
 
      ListFileItem> items = upload.parseRequest(request);// 得到所有的文件 
      IteratorFileItem> i = items.iterator(); 
      while (i.hasNext()) { 
        FileItem fi = (FileItem) i.next(); 
        String fileName = fi.getName(); 
        if (fileName != null) { 
          File fullFile = new File(fi.getName()); 
          File savedFile = new File(uploadPath, fullFile.getName()); 
          fi.write(savedFile); 
        } 
      } 
       
      response.setContentType("text/html;charset=GBK");  
      response.getWriter().print( 
      "mce:script language='javascript'>!-- 
alert('上傳成功');window.location.href='index.jsp'; 
// -->/mce:script>"); 
    } catch (Exception e) { 
      // 可以跳轉(zhuǎn)出錯(cuò)頁面 
      e.printStackTrace(); 
    } 
  } 
 
  public void init() throws ServletException { 
    File uploadFile = new File(uploadPath); 
    if (!uploadFile.exists()) { 
      uploadFile.mkdirs(); 
    } 
  } 
} 

再看下載Downlaod.java:

package am.demo; 
 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.io.OutputStream; 
 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
@SuppressWarnings("serial") 
public class Download extends HttpServlet { 
  public void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws IOException, ServletException { 
 
 
    String aFileName = new String(request.getParameter("name").getBytes( 
        "iso8859-1"), "gbk"); 
 
    File fileLoad = new File("d:/temp", aFileName); 
 
    FileInputStream in = null; // 輸入流 
    OutputStream out = response.getOutputStream(); 
    byte b[] = new byte[1024]; 
 
    try { 
 
       response.setContentType("application/x-msdownload;"); 
 
      response.setHeader("Content-disposition", "attachment; filename=" 
          + new String(aFileName.getBytes("GBK"), "ISO-8859-1")); 
 
      // download the file. 
      in = new FileInputStream(fileLoad); 
      int n = 0; 
      while ((n = in.read(b)) != -1) { 
        out.write(b, 0, n); 
      } 
 
    } catch (Throwable e) { 
      e.printStackTrace(); 
    } finally { 
      try { 
        in.close(); 
        out.close(); 
      } catch (Throwable e) { 
        e.printStackTrace(); 
      } 
    } 
  } 
 
  public void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws IOException, ServletException { 
    doGet(request, response); 
  } 
 
} 

刪除Delete.java:

package am.demo; 
 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.IOException; 
 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
@SuppressWarnings("serial") 
public class Delete extends HttpServlet { 
 
  public void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws FileNotFoundException, IOException { 
 
    String aFileName = new String(request.getParameter("name").getBytes( 
        "iso8859-1"), "gbk"); 
 
    File file = new File("d:/temp", aFileName); 
 
    response.setContentType("text/html;charset=GBK"); 
 
    if (!file.isDirectory()) { 
      file.delete(); 
      response.getWriter().print( 
        "mce:script language='javascript'>!-- 
alert('刪除成功');window.location.href='index.jsp'; 
// -->/mce:script>"); 
    } else { 
 
    } 
 
  } 
 
  public void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws IOException, ServletException { 
    doGet(request, response); 
  } 
} 

 因?yàn)閡buntu server是黑屏,本人用的是ubuntu server10.04,不方便用瀏覽器來查看文件,因?yàn)闆]有圖形界面,也不方便調(diào)試,所以可以先在windows上測(cè)試通過,然后把相應(yīng)文件拷到ubuntu server中的tomcat相應(yīng)目錄下,可以通過samba來傳文件,但遇到一個(gè)問題,就是中文亂碼的問題,因?yàn)樵陂_始安裝時(shí),選的是英文,后面用網(wǎng)上的一些辦法,還是沒有解決中文亂碼的問題,有知道的大俠,還煩請(qǐng)轉(zhuǎn)告。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • javascript使用Blob對(duì)象實(shí)現(xiàn)的下載文件操作示例
  • 原生js實(shí)現(xiàn)文件上傳、下載、封裝等實(shí)例方法
  • JavaScript實(shí)現(xiàn)文件下載并重命名代碼實(shí)例
  • php+js實(shí)現(xiàn)的無刷新下載文件功能示例
  • js使用文件流下載csv文件的實(shí)現(xiàn)方法
  • 通過JavaScript下載文件到本地的方法(單文件)
  • Jsp+Servlet實(shí)現(xiàn)文件上傳下載 刪除上傳文件(三)
  • Jsp+Servlet實(shí)現(xiàn)文件上傳下載 文件列表展示(二)
  • Jsp+Servlet實(shí)現(xiàn)文件上傳下載 文件上傳(一)
  • JavaScript實(shí)現(xiàn)多文件下載方法解析

標(biāo)簽:蚌埠 江蘇 衢州 棗莊 萍鄉(xiāng) 廣元 衡水 大理

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《JSP servlet實(shí)現(xiàn)文件上傳下載和刪除》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    区。| 汪清县| 开化县| 永福县| 乌鲁木齐县| 保靖县| 沙坪坝区| 长武县| 苗栗县| 三门县| 三江| 宿松县| 沅陵县| 温宿县| 乌兰县| 河池市| 卓资县| 昌平区| 蓬溪县| 海盐县| 任丘市| 资源县| 胶州市| 大同市| 临沂市| 壤塘县| 崇文区| 乌拉特前旗| 武陟县| 潮安县| 彭山县| 新建县| 怀宁县| 句容市| 延寿县| 云和县| 探索| 清新县| 建昌县| 渝北区| 沁水县|