日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

javaweb上传文件_javaWeb中,如何通过CommonsFileUpload组件上传文件

發布時間:2023/12/19 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javaweb上传文件_javaWeb中,如何通过CommonsFileUpload组件上传文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,歡迎來到雄雄的小課堂,今天給大家分享的是《javaWeb中,如何通過Commons-FileUpload組件上傳文件》

前言:文件上傳大家都不陌生,在這個互聯網飛速發展的時代,共享資源已經是常態了,用戶將自己計算機中的文件上傳至服務器端供別人下載、瀏覽,已經是web項目中最常用的功能了。比如在QQ空間中我們上傳的照片,在博客中我們上傳的工具插件,均離不開文件上傳,那么,今天我們就來看看,javaweb中,是如何實現文件上傳的?

01

Commons-FileUpload

使用比較簡單,可以直接嵌套在jsp文件中,并且不需要編寫很多的代碼即可完成文件的上傳。除了可以上傳文件以外,還能控制上傳文件的類型以及大小,可以說是即實用又方便。

02

Commons-FileUpload上傳文件的步驟

  • 給表單中添加屬性,enctype="multipart/form-data",并且表單的提交方式一定是post,不可以是get。

  • 頁面借助file表單來選擇上傳的文件。

  • 在JSP文件中使用 page指令導入Cormons Filel ploaod組件所需的類。

  • 判斷請求信息中的內容是否是multipart 類型,如果是則進行處理。

  • 通過 FileltemnFactory工廠對象實例化ServletFil lpload對象。

  • 調用 ServletFileUpload對象的parseRequest(?)將表單中字段解析成Fileltem對象的集合。

  • 通過迭代依次處理每個Fileltem 對象,如果是普通字段,通過getSring(?)方法得到相應表?單字符的值,該值與表單字段中的^name"?屬性對應。如果是文件字段,則通過File的構造方法構建一個指定路徑名和文件名的文件,并通過Flele對象的wie)方法將上傳文件的內容保存到文件中。?

  • 03

    示例代碼

    頁面fileUpload.jsp的代碼:


    ????文件上傳:
    ????"doFile.jsp"?method="post"?enctype="multipart/form-data"?>
    ??????姓名:<input?type="text"?name="name"/>
    ??????文件:<input?type="file"?name="fname"/>
    ??????<input?type="submit"?value="上傳"/>

    處理業務doFile.jsp的代碼:

    "java.io.File"%>
    "org.apache.commons.fileupload.FileItem"%>
    "org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
    "org.apache.commons.fileupload.FileItemFactory"%>
    "org.apache.commons.fileupload.servlet.ServletFileUpload"%>
    "java"?import="java.util.*"?pageEncoding="UTF-8"%>
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>

    span style="color: rgb(152, 195, 121);background: rgba(0, 0, 0, 0);display: inline;width: 262px;text-decoration: none solid rgb(152, 195, 121);font-weight: 400;font-style: normal;">"-//W3C//DTD HTML 4.01 Transitional//EN">

    ??
    ????<base?href="">
    ????
    ????My JSP 'doFile.jsp'?starting page
    ????
    ??"pragma"?content="no-cache">
    ??"cache-control"?content="no-cache">
    ??"expires"?content="0">
    ??"keywords"?content="keyword1,keyword2,keyword3">
    ??"description"?content="This is my page">
    ??

    ??
    ??
    ??
    ??????????????request.setCharacterEncoding("utf-8");
    ????????String uploadName = ""; //上傳的文件名
    ????????String fileName = ""; //表單里面name的值
    ????????//請求信息中是否是multipart類型
    ????????boolean isMultipart = ServletFileUpload.isMultipartContent(request);
    ????????//上傳文件的存儲路徑
    ????????String uploadPath = request.getSession().getServletContext().getRealPath("upload/");
    ????????if(isMultipart){
    ??????????FileItemFactory factory = new?DiskFileItemFactory();
    ??????????ServletFileUpload upload = new?ServletFileUpload(factory);
    ??????????//解析所有的form表單里面的文件
    ??????????List items = upload.parseRequest(request);
    ??????????Iterator iter = items.iterator();while(iter.hasNext()){ //一次處理每個文件
    ????????????FileItem item = (FileItem)iter.next();if(item.isFormField()){ //普通表單
    ??????????????fileName = item.getFieldName(); //表單字段的name屬性值if(fileName.equals("name")){out.print(item.getString("utf-8")+"上傳了文件
    ");
    ??????????????}
    ????????????}else{//文件表單
    ??????????????String fName = item.getName();if(fName!=null&&!fName.equals("")){
    ????????????????File fullFile = new?File(item.getName());
    ????????????????File saveFile = new?File(uploadPath,fullFile.getName());
    ????????????????item.write(saveFile);
    ????????????????uploadName= fullFile.getName();out.print("上傳成功之后的文件名是:"+uploadName);
    ??????????????}
    ????????????}
    ??????????}
    ????????}
    ???????%>

    運行結果如下:

    往期精彩

    多功能語音播放器

    2020-11-21

    CSS動畫示例(上一篇是CSS過渡…)

    2020-11-20

    CSS3中的動畫示例

    2020-11-19

    CSS3的幾個變形案例……

    2020-11-18

    jsp中使用cookie時報錯……

    2020-11-17

    Java中的TreeSet集合會自動將元素升序排序

    2020-11-16

    點分享點點贊點在看

    總結

    以上是生活随笔為你收集整理的javaweb上传文件_javaWeb中,如何通过CommonsFileUpload组件上传文件的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。