国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

用JSP文件上載輕松實(shí)現(xiàn)

2019-11-18 21:07:38
字體:
供稿:網(wǎng)友
現(xiàn)在JSP被越來越多的人應(yīng)用在后臺(tái)程序的開發(fā)及動(dòng)態(tài)網(wǎng)頁的制作上了,今天就來介紹一下如何用JSP來實(shí)現(xiàn)文件的上載。

  一、RFC1867規(guī)范

  在過去的Html中,表單不能實(shí)現(xiàn)文件的上傳,這多少限制了一些網(wǎng)頁的功能。RFC1867規(guī)范(即Html中實(shí)現(xiàn)基于表單的文件上傳)對表單作出了擴(kuò)展,增加了一個(gè)表單元素&:ltinput type=file>。通過使用這個(gè)元素,瀏覽器會(huì)自動(dòng)生成一個(gè)輸入框和一個(gè)按鈕,輸入框可供用戶填寫本地的文件名和路徑名,按鈕可以讓瀏覽器打開一個(gè)文件選擇框供用戶選擇文件。具體的表單實(shí)現(xiàn)如下:

  <FORM ACTION=upload.jsp ENCTYPE=″multipart/form-data″ METHOD=POST>
  Please input your name
  <input type=text name=user><br> Please give us the file
  <INPUT TYPE=FILE NAME=file1>
  <input type=submit value=″Send file″>
  </FORM>

  特別需要指出的是,只有Netscape 3和IE3.02以后的版本才支持此規(guī)范,而且我們實(shí)踐下來發(fā)現(xiàn)文件選擇按鈕是瀏覽器自動(dòng)生成的,因而按鈕的文字和瀏覽器版本有很大的關(guān)系,如果是中文的IE,按鈕的文字是“打開...”;英文的Netscape則顯示“Browse...”;如果是Opera,則只有″...″。用戶沒辦法自己設(shè)定按鈕文字,不能不說是一種遺憾。除了瀏覽器,網(wǎng)絡(luò)服務(wù)器也要能支持此規(guī)范,好在現(xiàn)在市面上絕大部分服務(wù)器軟件都沒有問題,微軟的IIS在增加一個(gè)插件后也能很好地支持此規(guī)范。

   二、組件的安裝

  在用戶端實(shí)現(xiàn)文件上傳后,就要用JSP來處理用戶的上傳請求。我們可以去www.jspsmart.com下載一個(gè)免費(fèi)的組件來實(shí)現(xiàn)這一功能。在安裝之前先確認(rèn)你的JSP服務(wù)器軟件支持JDK1.2.2和JSP1.1,然后只要在Server的class路徑中加入該組件所在的目錄就可以了。

  三、程序?qū)崿F(xiàn)

  1.文件上傳

  <%@ page language=″java″ import=″com.jspsmart.upload.″%>
   <HTML>
   <BODY BGCOLOR=″white″>
   <H1>jspSmartUpload </H1>
   <HR>
   <% int count=0 //設(shè)置變量 SmartUpload mySmartUpload=new SmartUpload
 mySmartUpload.initializepageContext //初始化
   mySmartUpload.upload //上傳 ry
  count = mySmartUpload.save″/upload″ //把上傳的文件保存在/upload目錄下 out.printlncount + ″ files uploaded.″ //顯示上傳了多少個(gè)文件
   catch Exception e  out.printlne.toString %>
   </BODY>
   </HTML>

  需要注意:調(diào)試的時(shí)候要確認(rèn)上傳文件所存儲(chǔ)的目錄有可寫屬性。

  2.表單處理

  由于上傳文件的表單使用了 ENCTYPE=″multipart/form-data″屬性,所以在JSP中處理表單傳遞的值的時(shí)候不能再簡單地使用request.getParameter了,而應(yīng)該這樣來處理:

  <%@ page language=″java″ import=″com.jspsmart.upload.″%>
   <HTML>
   <BODY BGCOLOR=″white″>
   <H1>jspSmartUpload </H1>
   <HR>
   <% SmartUpload myUpload=new SmartUpload myUpload.initializepageContext myUpload.upload out.println″Number of files = ″ + myUpload.getFiles.getCount + ″<BR>″ out.println″
   <BR>
   <BR>
   <STRONG>Display information about Requests</STRONG>
   <BR>″
   String[ ]values = myUpload.getRequest
.getParameterValues″formtag″ //formtag為表單中元素的name,返回的值為字符數(shù)組中第一個(gè)元素。 out.printkey + ″ = ″+values0
 %>
   </body>
   </html>

  3.其他API myUpLoad.setAllowedFilesList″txtdocxls″

 設(shè)定可以上傳的文件的后綴名; myUpLoad.setDeniedFilesList″batexecomjsp″ 設(shè)定不能上傳的文件的后綴名;

  myUpLoad.setMaxFileSize100000 設(shè)定單個(gè)文件的最大字節(jié)數(shù);

   myUpLoad.setTotalMaxFileSize100000 設(shè)定所有上傳文件的最大字節(jié)數(shù);

   myUpload.uploadInFile″/myData.txt″ 把表單的內(nèi)容全部存儲(chǔ)到myData.txt保存;

  myUpload.getFiles.getCount 獲得上傳的文件的個(gè)數(shù);

  myUpload.getFiles.getSize 獲得上傳的文件的總字節(jié)數(shù);

   myUpload.getFiles.getFileid.getFileName 獲得指定ID號文件的文件名;

   myUpload.getFiles.getFileid.getFilePathName 獲得指定ID號文件的路徑名;

   myUpLoad.getFiles.getFile0.isMissing 返回一布爾值以確定用戶是否上傳了文件。

  四、其他功能 JspSmartUpload除了能把上傳文件保存到硬盤,還能直接把文件插入到數(shù)據(jù)庫,同時(shí)還能實(shí)現(xiàn)文件下載的功能,相信隨著大家的深入研究,一定能將這一功能更好地應(yīng)用到自己的實(shí)踐中去。



發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 河东区| 绿春县| 浏阳市| 呈贡县| 孝感市| 浑源县| 贞丰县| 西乌珠穆沁旗| 昂仁县| 双鸭山市| 廉江市| 十堰市| 白山市| 防城港市| 罗定市| 隆安县| 东海县| 嘉峪关市| 桃园县| 金坛市| 平乡县| 柞水县| 和政县| 霞浦县| 宁武县| 武城县| 康马县| 赤城县| 崇仁县| 祁东县| 孝感市| 丽水市| 冷水江市| 泾源县| 巴马| 乳山市| 云浮市| 永年县| 鄂尔多斯市| 潮安县| 怀远县|