欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
利用Jakarta commons fileupload組件實(shí)現多文件上傳

利用Jakarta commons fileupload組件實(shí)現多文件上傳

         曾經(jīng)寫(xiě)過(guò)一篇 文章《利用MultipartFile實(shí)現文件上傳》,可是最近在工作中,我需要同時(shí)上傳多個(gè)文件,似乎用MultipartFile就不能勝任了,于是想到了Jakarta commons。Jakarta commons真是不錯的,有那么多開(kāi)源且好用的東東,太方便了。好了,閑話(huà)少說(shuō),開(kāi)始介紹一下jakarta commons fileupload組件吧。
        首先,需要到其官網(wǎng)上下載最新的jar包及其依賴(lài)的jar包,然后可以參考一下它的user guide,很簡(jiǎn)單,想信大家都能看懂,這里就把主要的內容提一下(相當于一個(gè)刪減的翻譯)。
一.基本原理
        FileUpload組件將頁(yè)面提交的所有元素(普通form表單域,如text和文件域file)都看作一樣的FileItem,這樣上傳頁(yè)面提交的request請求也就是一個(gè)FileItem的有序組合,FileUpload組件可以解析該request,并返回一個(gè)一個(gè)的FileItem。而對每一個(gè)FileItem,FileUpload組件可以判斷出它是普通form表單域還是文件file域,從而根據不同的類(lèi)型,采取不同的操作--如果是表單域,就讀出其值,如果是文件域,就保存文件到服務(wù)器硬盤(pán)上或者內存中。
二.具體實(shí)現
         對一個(gè)HttpRequest請求,我們要判斷該請求是否是文件上傳的請求
// Check that we have a file upload request
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        不過(guò),個(gè)人覺(jué)得這個(gè)方法一般不需要,我們一般是在需要上傳時(shí)才采用fileupload組件處理request請求的。
         如果確實(shí)是文件上傳的請求,我們如何解析該request呢?
         至此我們已經(jīng)的到了FileItem的list,對每個(gè)Item的處理要考慮是標準的form表單域還是上傳文件file域,然后做不同的處理,可以通過(guò)以下方式實(shí)現:
// Process the uploaded items
Iterator iter = items.iterator();
while (iter.hasNext()) {
    FileItem item 
= (FileItem) iter.next();

    
if (item.isFormField()) {
        processFormField(item);
    }
 else {
        processUploadedFile(item);
    }

}
       對于一個(gè)簡(jiǎn)單的form表單域,我們可以通過(guò)以下方法得到該域的相關(guān)信息:
// Process a regular form field
if (item.isFormField()) {
    String name 
= item.getFieldName();
    String value 
= item.getString();
    ...
}
       而對于一個(gè)upload file,我們則可以通過(guò)如下方式得到其相關(guān)信息:
// Process a file upload
if (!item.isFormField()) {
    String fieldName 
= item.getFieldName();
    String fileName 
= item.getName();
    String contentType 
= item.getContentType();
    
boolean isInMemory = item.isInMemory();
    
long sizeInBytes = item.getSize();
    ...
}
        實(shí)際上,對于一個(gè)上傳的文件,我們一般不會(huì )把它包存在內存中,除非它足夠小。我們一般是把它保存到硬盤(pán)上,使用以下方法就可以將上傳的文件保存到服務(wù)器硬盤(pán)上了:
File uploadedFile = new File(...);
item.write(uploadedFile);
         好了,到了這里,fileupload組件的基本api已經(jīng)介紹完了,大家應該有點(diǎn)輪廓了吧?
        在下一篇文章中,我會(huì )對commons FileUpload組件稍作包裝,并做個(gè)簡(jiǎn)單的demo

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1625754

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
用commons.fileupload實(shí)現文件的上傳和下載
利用commons-fileupload組件上傳文件至服務(wù)器和數據庫
CSDN技術(shù)中心 有關(guān)FileUpload組件的使用和調試的經(jīng)驗
解決當FORM的ENCTYPE="multipart/form-data" 時(shí)reques...
文件上傳和下載的commons-fileupload-1.2的使用 - Aflyer 天與...
對commons fileupload組件的簡(jiǎn)單封裝
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久