使用smartupload組件實現(xiàn)jsp+jdbc上傳下載文件實例解析
SmartUpload組件只有5個分別是:File、Files、Request、SmartUpload、SmartUploadException類,其中,F(xiàn)ile代表用戶上傳的文件,F(xiàn)iles代表用戶上傳的多個文件,Request相當于HttpServletRequest的功能,用于獲取表單數(shù)據(jù),SmartUpload是最核心的類,負責文件上傳下載,SmartUploadException是自定義異常。
SmartUpload的基本使用思路如下:
jsp前臺代碼表單提交
<form action="" method="post" name="form1" onSubmit="r" enctype="multipart/form-data"> <input type="file" name="img" size="34"></td> </form>
//創(chuàng)建SmartUpload的實例 SmartUpload su = new SmartUpload(); //初始化,如果是在Servlet中使用,則調(diào)用另一個重載方法:initialize(ServletConfig, HttpServletRequest, HttpServletResponse) su.initialize(pageContext); //完成上傳操作 su.upload(); //將上傳的文件保存到指定的文件夾。參數(shù)1表示文件保存的路徑,參數(shù)2是可選選項 su.save("uploads/", SmartUpload.SAVE_VIRTUAL);
在save方法中,有三個常量:SAVEAS_PHYSICAL,SAVEAS_VIRTUAL,SAVEAS_AUTO,意義分別是:
SAVEAS_PHYSICAL表明以操作系統(tǒng)的根目錄為文件根目錄另存文件,SAVEAS_VIRTUAL表明以Web應用程序的根目錄為文件根目錄另存文件,SAVEAS_AUTO則表示讓組件決定,當Web應用程序的根目錄存在另存文件的目錄時,它會選擇SAVEAS_VIRTUAL,否則會選擇SAVEAS_PHYSICAL。
如果希望給文件重命名(這是經(jīng)常遇到的問題),可以調(diào)用File類的saveAs方法保存單個的文件,代碼如下:
SmartUpload su = new SmartUpload(); su.initialize(pageContext); //指定擴展名 su.setAllowedFilesList("bmp,jpg,bng,gif"); //指定大小 su.setMaxFileSize(1 * 1024 * 1024); su.upload(); //單獨保存文件,用UUID名稱保存 Files files = su.getFiles(); for(int i = 0; i < files.getCount(); i ++){ File f = files.getFile(i); if(!f.isMissing()){ //保存單個文件,參數(shù)1為文件名,參數(shù)2為可選選項。 f.saveAs("uploads/" + UUID.randomUUID().toString() + "." + f.getFileExt(), SmartUpload.SAVE_VIRTUAL); } }
使用SmartUpload實現(xiàn)文件下載就更簡單了,不再直接和數(shù)據(jù)流打交道,非常貼心的設計。SmartUpload定義了一個名為downloadFile()的方法,該方法的參數(shù)指定要下載的文件即可。當然,在此之前要先調(diào)用setContentDisposition(null),參數(shù)為null表示告知瀏覽器下載文件。代碼如下:
SmartUpload su = new SmartUpload(); su.initialize(pageContext); su.setContentDisposition(null); //表示這是一個下載操作 su.downloadFile("uploads/fa79a56a-5e64-407d-a22b-8606d512b447.jpg");
smartupload組件包下載地址:http://download.csdn.net/detail/qq_24886937/9729267
以上所述是小編給大家介紹的使用smartupload組件實現(xiàn)jsp+jdbc上傳下載文件實例解析,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
JavaScript利用normalizr實現(xiàn)復雜數(shù)據(jù)轉(zhuǎn)換
當我們需要進行數(shù)據(jù)轉(zhuǎn)換以便拆分和維護時,可以使用redux作者 Dan Abramov 編寫的normalizr來處理數(shù)據(jù),本文將為大家詳細講講其用法,感興趣的可以了解一下2022-07-07js print打印網(wǎng)頁指定區(qū)域內(nèi)容的簡單實例
下面小編就為大家?guī)硪黄猨s print打印網(wǎng)頁指定區(qū)域內(nèi)容的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11