电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java eclipse 中文件的上傳和下載示例解析

瀏覽:20日期:2022-08-29 10:50:49

文件的上傳與下載(一)

在實(shí)現(xiàn)文件上傳和下載之前我們需要做一些準(zhǔn)備工作,在Apache官網(wǎng)去下載文件上傳下載的兩個(gè)組件,下載鏈接這里給出:common-fileupload組件下載:http://commons.apache.org/proper/commons-fileupload/

common-io組件下載:http://commons.apache.org/proper/commons-io/根據(jù)自己需求下載對(duì)應(yīng)版本

一、創(chuàng)建工程

將所需要的兩個(gè)開發(fā)包導(dǎo)入到工程項(xiàng)目中如圖:

java eclipse 中文件的上傳和下載示例解析

二、代碼編寫

1.前端頁(yè)面代碼

1). 在WebRoot目錄下新建一個(gè)fileUpload.jsp頁(yè)面,用來上傳文件

<%@ page language='java' import='java.util.*' pageEncoding='GB18030'%><%String path = request.getContextPath();String basePath = request.getScheme()+'://'+request.getServerName()+':'+request.getServerPort()+path+'/';%><!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'><html> <head> <base href='http://www.hdgsjgj.cn/bcjs/<%=basePath%>'> <title>My JSP ’fileUpload.jsp’ starting page</title> <meta http-equiv='pragma' content='no-cache'> <meta http-equiv='cache-control' content='no-cache'> <meta http-equiv='expires' content='0'> <meta http-equiv='keywords' content='keyword1,keyword2,keyword3'> <meta http-equiv='description' content='This is my page'> <!-- <link rel='stylesheet' type='text/css' href='http://www.hdgsjgj.cn/bcjs/styles.css'> --> </head> <body> <!-- 文件上傳表單的提交方式必須是“post” 編碼類型必須為:enctype='multipart/form-data' --> <form action='UploadServlet' method='post' enctype='multipart/form-data'> username: <input type='text' name='username' /><br> file: <input type='file' name='file'><br> file2: <input type='file' name='file2'><br> <input type='submit' value='上傳文件'> </form> </body></html>

2).新建一個(gè)fileUploadResult.jsp頁(yè)面用來顯示結(jié)果信息

<%@ page language='java' import='java.util.*,java.io.*' pageEncoding='GB18030'%><%String path = request.getContextPath();String basePath = request.getScheme()+'://'+request.getServerName()+':'+request.getServerPort()+path+'/';%><!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'><html> <head> <base href='http://www.hdgsjgj.cn/bcjs/<%=basePath%>'> <title>My JSP ’fileUploadResult.jsp’ starting page</title> <meta http-equiv='pragma' content='no-cache'> <meta http-equiv='cache-control' content='no-cache'> <meta http-equiv='expires' content='0'> <meta http-equiv='keywords' content='keyword1,keyword2,keyword3'> <meta http-equiv='description' content='This is my page'> <!-- <link rel='stylesheet' type='text/css' href='http://www.hdgsjgj.cn/bcjs/styles.css'> --> </head> <body> <%-- <% //獲取流對(duì)象 InputStream inputStream = request.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(inputStream)); String buffer = null; while((buffer = br.readLine()) != null){ out.print(buffer + '<br>'); } br.close(); inputStream.close(); %> --%> ${message}<br> EL-username : ${requestScope.username} <br> EL-file1 : ${requestScope.file }<br> EL-file2 : ${requestScope.file2}<br> </body></html>

2. 編寫上傳文件處理的Servlet代碼

1) UploadServlet.java代碼如下:

package com.Servlet;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;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;public class UploadServlet extends HttpServlet { /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //得到上傳文件的保存目錄,將上傳的文件放在webRoot目錄下(但是一般為了安全放在WEB-INF目錄下,不允許外界直接訪問,保證上傳的安全) String path = this.getServletContext().getRealPath('/upload'); File file = new File(path); //判斷上傳文件的保存目錄是否存在 if(!file.exists() && !file.isDirectory()){ System.out.println(path + '目錄不存在,需要?jiǎng)?chuàng)建!'); //創(chuàng)建目錄 file.mkdir(); } //消息提示 String message = ''; try{ //使用Apache文件上傳組件處理文件上傳步驟: //1.創(chuàng)建一個(gè)DiskFileItemFactory工廠 DiskFileItemFactory factory = new DiskFileItemFactory(); //2.創(chuàng)建一個(gè)文件上傳解析器 ServletFileUpload upload = new ServletFileUpload(factory); //解決中文亂碼 upload.setHeaderEncoding('UTF-8'); //3.判斷提交的數(shù)據(jù)普通表單的數(shù)據(jù)還是帶文件上傳的表單 if(!upload.isMultipartContent(request)){ //如果是表單數(shù)據(jù)普通表單,則按照傳統(tǒng)方式獲取數(shù)據(jù) return ; } //4.使用ServletFileUpload解析器解析上傳數(shù)據(jù),解析結(jié)果返回的是一個(gè)List<FileItem>集合,每一個(gè)FileItem對(duì)應(yīng)一個(gè)Form表單的輸入項(xiàng) List<FileItem> list = upload.parseRequest(request); for(FileItem item : list){ //如果fileItem中封裝的是普通輸入項(xiàng)的數(shù)據(jù) if(item.isFormField()){ //獲取字段名字 String name = item.getFieldName(); //解決普通輸入項(xiàng)中中文亂碼問題 String value = item.getString('UTF-8');//value = new String(value.getBytes('iso8859-1'),'UTF-8'); System.out.println(name + ' = ' + value); }else{ //如果表單中提交的是上傳文件 //獲得上傳的文件名稱 String filename = item.getName(); System.out.println(filename); if(filename == null || filename.trim().equals(' ')){ continue; } //注意:不同的瀏覽器提交的文件名稱是不一樣的,有些瀏覽器提交的文件會(huì)帶有路徑,如“D:projectWebRoothello.jsp”,有一些是單純的文件名:hello.jsp //去掉獲取到文件名中的路徑名,保留單純的文件名 filename = filename.substring(filename.lastIndexOf('') + 1); //獲取item中的上傳文件的輸入流 InputStream in = item.getInputStream(); //創(chuàng)建一個(gè)文件輸入流 FileOutputStream out = new FileOutputStream(path + '' + filename); //創(chuàng)建一個(gè)緩沖區(qū) byte buffer[] = new byte[1024]; //判斷輸入流中的數(shù)據(jù)是否已經(jīng)讀取完畢的標(biāo)志位 int len = 0; //循環(huán)將輸入流讀入到緩沖區(qū)當(dāng)中,(len = in.read(buffer)>0)就表示in里面還有數(shù)據(jù)存在 while((len = in.read(buffer)) > 0){ //使用FileOutputStream輸出流將緩沖區(qū)的數(shù)據(jù)寫入到指定的目錄(path+''+filename)當(dāng)中 out.write(buffer, 0, len); } //關(guān)閉輸入流 in.close(); //關(guān)閉輸出流 out.close(); //刪除處理文件上傳生成的臨時(shí)文件 item.delete(); message = '文件上傳成功!'; } } }catch(Exception e){ message = '文件上傳失??!'; e.printStackTrace(); } request.setAttribute(message, message); request.getRequestDispatcher('fileUploadResult.jsp').forward(request, response); }}

2)web.xml文件中的配置

<?xml version='1.0' encoding='UTF-8'?><web-app version='3.0' xmlns='http://java.sun.com/xml/ns/javaee' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd'> <servlet> <servlet-name>UploadServlet</servlet-name> <servlet-class>com.Servlet.UploadServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>UploadServlet</servlet-name> <url-pattern>/UploadServlet</url-pattern> </servlet-mapping></web-app>

結(jié)果:

java eclipse 中文件的上傳和下載示例解析

java eclipse 中文件的上傳和下載示例解析

到此這篇關(guān)于eclipse java中文件的上傳和下載示例解析的文章就介紹到這了,更多相關(guān)eclipse java中文件的上傳和下載內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 扬尘监测_扬尘监测系统_带证扬尘监测设备 - 郑州港迪科技有限公司 | 悬浮拼装地板_幼儿园_篮球场_悬浮拼接地板-山东悬浮拼装地板厂家 | 德国GMN轴承,GMN角接触球轴承,GMN单向轴承,GMN油封,GMN非接触式密封 | 挤出熔体泵_高温熔体泵_熔体出料泵_郑州海科熔体泵有限公司 | 冷水机,风冷冷水机,水冷冷水机,螺杆冷水机专业制造商-上海祝松机械有限公司 | 珠光砂保温板-一体化保温板-有釉面发泡陶瓷保温板-杭州一体化建筑材料 | 桑茶-七彩贝壳桑叶茶 长寿茶 | 烟台螺纹,烟台H型钢,烟台钢材,烟台角钢-烟台市正丰金属材料有限公司 | 工业冷却塔维修厂家_方形不锈钢工业凉水塔维修改造方案-广东康明节能空调有限公司 | 超声波流量计_流量标准装置生产厂家 _河南盛天精密测控 | 无线讲解器-导游讲解器-自助讲解器-分区讲解系统 品牌生产厂家[鹰米讲解-合肥市徽马信息科技有限公司] | 铝箔-铝板-花纹铝板-铝型材-铝棒管-上海百亚金属材料有限公司 | 创绿家招商加盟网-除甲醛加盟-甲醛治理加盟-室内除甲醛加盟-创绿家招商官网 | 富森高压水枪-柴油驱动-养殖场高压清洗机-山东龙腾环保科技有限公司 | 翅片管散热器价格_钢制暖气片报价_钢制板式散热器厂家「河北冀春暖气片有限公司」 | 哲力实业_专注汽车涂料汽车漆研发生产_汽车漆|修补油漆品牌厂家 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 合肥通道闸-安徽车牌识别-人脸识别系统厂家-安徽熵控智能技术有限公司 | 气动调节阀,电动调节阀,自力式压力调节阀,切断阀「厂家」-浙江利沃夫自控阀门 | 皮带式输送机械|链板式输送机|不锈钢输送机|网带输送机械设备——青岛鸿儒机械有限公司 | 飞行者联盟-飞机模拟机_无人机_低空经济_航空技术交流平台 | 干粉砂浆设备_干混砂浆生产线_腻子粉加工设备_石膏抹灰砂浆生产成套设备厂家_干粉混合设备_砂子烘干机--郑州铭将机械设备有限公司 | [品牌官网]贵州遵义双宁口腔连锁_贵州遵义牙科医院哪家好_种植牙_牙齿矫正_原华美口腔 | 杭州成人高考_浙江省成人高考网上报名 | 寮步纸箱厂_东莞纸箱厂 _东莞纸箱加工厂-东莞市寮步恒辉纸制品厂 | 众品地板网-地板品牌招商_地板装修设计_地板门户的首选网络媒体。 | 无硅导热垫片-碳纤维导热垫片-导热相变材料厂家-东莞市盛元新材料科技有限公司 | 液压升降货梯_导轨式升降货梯厂家_升降货梯厂家-河南东圣升降设备有限公司 | 广州昊至泉水上乐园设备有限公司| 标策网-专注公司商业知识服务、助力企业发展 | 干粉砂浆设备_干混砂浆生产线_腻子粉加工设备_石膏抹灰砂浆生产成套设备厂家_干粉混合设备_砂子烘干机--郑州铭将机械设备有限公司 | 玻璃钢板-玻璃钢防腐瓦-玻璃钢材料-广东壹诺 | 重庆小面培训_重庆小面技术培训学习班哪家好【终身免费复学】 | 衬四氟_衬氟储罐_四氟储罐-无锡市氟瑞特防腐科技有限公司 | 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 防爆型气象站_农业气象站_校园气象站_农业四情监测系统「山东万象环境科技有限公司」 | 上海璟文空运首页_一级航空货运代理公司_机场快递当日达 | 熔体泵_熔体出料泵_高温熔体泵-郑州海科熔体泵有限公司 | 南溪在线-南溪招聘找工作、找房子、找对象,南溪综合生活信息门户! | 真空乳化机-灌装封尾机-首页-温州精灌 | 广州展览制作|展台制作工厂|展览设计制作|展览展示制作|搭建制作公司 | 翅片管换热器「型号全」_厂家-淄博鑫科环保 |