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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java实现文件上传下载功能,javaweb文件的下载和上传功能的实现

發布時間:2025/3/15 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java实现文件上传下载功能,javaweb文件的下载和上传功能的实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

沒有文件上傳的普通form表單上傳

上傳的數值可以在servlet中獲取得到

String?s_bPublishDate=request.getParameter("fname");

String?s_aPublishDate=request.getParameter("lname");

這樣就可以在后臺得到Input框中輸入的數值呢

文件上傳和普通的表單上傳有什么不一樣呢?

。。。。。。。。。。。。。。。。。。

注意在這個有文件提交的form表單中,form中多了?enctype="multipart/form-data"。

表單標簽中設置enctype=”multipart/form-data”來確保匿名上載文件的正確編碼。

表單中enctype=”multipart/form-data”的意思,是設置表單的MIME編碼。默認情況,這個編碼格式是application/x-www-form-urlencoded,不能用于文件上傳;只有使用了multipart/form-data,才能完整的傳遞文件數據,進行下面的操作.

這個時候,我們input中的內容(所有不論文件還是什么)都變成了二進制格式傳遞過去了,所以request就得不到值了。 也就是說加了這段代碼,用request就會傳遞不成功,取表單值加入數據庫時,用到下面的:

FileItemFactory?factory=new?DiskFileItemFactory();

//FileItemFactory?一個工廠接口,用于創建FileLtem的實例

//DiskFileItemFactory?這實現創建FileLtem的實例保持其內容可以在內存較小的項目,

或者磁盤上的臨時文件較大的項目。

ServletFileUpload?upload=new?ServletFileUpload(factory);

//數據如何個別零件儲存是由廠用于創建;一個給定的一部分可能是內存,磁盤,或其他地方。構造該類的一個實例,使用提供的fileitem廠創建實例。

List?items=null;便利一個List鏈表準備接受全部的數據

try?{

items=upload.parseRequest(request);

}?catch?(Exception?e)?{

//?TODO?Auto-generated?catch?block

e.printStackTrace();

}

Iterator?itr=items.iterator();

//遍歷上傳的內容,迭代器

while(itr.hasNext()){

//如果迭代器里面還有內容,返回true,返回迭代的下一個元素。并把迭代輸出的結果強制轉換成Car對象。

FileItem?item=(FileItem)?itr.next();獲得這個元素,然后先后面走。

if(item.isFormField()){

//如果是普通表單,不是文件表單。

String?fieldName=item.getFieldName();

//得到數據的name,就是input中name的名字。

if("newsId".equals(fieldName)){

//你要的數據和name比較,看是不是你要的數據。

if(StringUtil.isNotEmpty(item.getString("utf-8"))){

//如果不為空的話。獲取item中的值,且轉化成了utf-8格式。

news.setNewsId(Integer.parseInt(item.getString("utf-8")));

}

}

if("title".equals(fieldName)){

news.setTitle(item.getString("utf-8"));

}

if("isUserful".equals(fieldName)){

news.setIsUserful(Integer.parseInt(item.getString("utf-8")));

}

if("content".equals(fieldName)){

news.setContent(item.getString("utf-8"));

}

if("author".equals(fieldName)){

news.setAuthor(item.getString("utf-8"));

}

if("typeId".equals(fieldName)){

news.setTypeId(Integer.parseInt(item.getString("utf-8")));

}

if("isHead".equals(fieldName)){

news.setIsHead(Integer.parseInt(item.getString("utf-8")));

}

if("isImage".equals(fieldName)){

news.setIsImage(Integer.parseInt(item.getString("utf-8")));

}

if("isHot".equals(fieldName)){

news.setIsHot(Integer.parseInt(item.getString("utf-8")));

}

if("imageName".equals(fieldName)&&news.getImageName()==null){

if(StringUtil.isNotEmpty(item.getString("utf-8"))){

news.setImageName(item.getString("utf-8").split("/")[1]);

//split("/")[1]不要后面的尾椎,eg??.doc

}

}

}else?if(!"".equals(item.getName())){

//如果為文件表單

try?{

String?imageName=DateUtil.getCurrentDateStr()+item.getName();

//這里是我自己給文件取得一個名字。

news.setImageName(DateUtil.getCurrentDateStr()+item.getName());

String?filePath=PropertiesUtil.getValue("filePath")+imageName;

//把文件寫到那個地方,上傳的路徑,你懂的。

item.write(new?File(filePath));

//把文件寫進去就ok了。

}?catch?(Exception?e)?{

//?TODO?Auto-generated?catch?block

e.printStackTrace();

}

}

}

一個附帶上傳文件大小限制的上傳文件

http://www.cnblogs.com/xdp-gacl/p/4200090.html

總結

以上是生活随笔為你收集整理的java实现文件上传下载功能,javaweb文件的下载和上传功能的实现的全部內容,希望文章能夠幫你解決所遇到的問題。

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