SmartUpload組件只有5個(gè)分別是:File、Files、Request、SmartUpload、SmartUploadException類,其中,F(xiàn)ile代表用戶上傳的文件,F(xiàn)iles代表用戶上傳的多個(gè)文件,Request相當(dāng)于HttpServletRequest的功能,用于獲取表單數(shù)據(jù),SmartUpload是最核心的類,負(fù)責(zé)文件上傳下載,SmartUploadException是自定義異常。
SmartUpload的基本使用思路如下:
jsp前臺(tái)代碼表單提交
<form action="" method="post" name="form1" onSubmit="r" enctype="multipart/form-data"> <input type="file" name="img" size="34"></td> </form>
//創(chuàng)建SmartUpload的實(shí)例 SmartUpload su = new SmartUpload(); //初始化,如果是在Servlet中使用,則調(diào)用另一個(gè)重載方法:initialize(ServletConfig, HttpServletRequest, HttpServletResponse) su.initialize(pageContext); //完成上傳操作 su.upload(); //將上傳的文件保存到指定的文件夾。參數(shù)1表示文件保存的路徑,參數(shù)2是可選選項(xiàng) su.save("uploads/", SmartUpload.SAVE_VIRTUAL); 在save方法中,有三個(gè)常量:SAVEAS_PHYSICAL,SAVEAS_VIRTUAL,SAVEAS_AUTO,意義分別是:
SAVEAS_PHYSICAL表明以操作系統(tǒng)的根目錄為文件根目錄另存文件,SAVEAS_VIRTUAL表明以Web應(yīng)用程序的根目錄為文件根目錄另存文件,SAVEAS_AUTO則表示讓組件決定,當(dāng)Web應(yīng)用程序的根目錄存在另存文件的目錄時(shí),它會(huì)選擇SAVEAS_VIRTUAL,否則會(huì)選擇SAVEAS_PHYSICAL。
如果希望給文件重命名(這是經(jīng)常遇到的問題),可以調(diào)用File類的saveAs方法保存單個(gè)的文件,代碼如下:
SmartUpload su = new SmartUpload(); su.initialize(pageContext); //指定擴(kuò)展名 su.setAllowedFilesList("bmp,jpg,bng,gif"); //指定大小 su.setMaxFileSize(1 * 1024 * 1024); su.upload(); //單獨(dú)保存文件,用UUID名稱保存 Files files = su.getFiles(); for(int i = 0; i < files.getCount(); i ++){  File f = files.getFile(i);  if(!f.isMissing()){  //保存單個(gè)文件,參數(shù)1為文件名,參數(shù)2為可選選項(xiàng)。  f.saveAs("uploads/" +    UUID.randomUUID().toString() + "." +   f.getFileExt(),   SmartUpload.SAVE_VIRTUAL);  } } 使用SmartUpload實(shí)現(xiàn)文件下載就更簡(jiǎn)單了,不再直接和數(shù)據(jù)流打交道,非常貼心的設(shè)計(jì)。SmartUpload定義了一個(gè)名為downloadFile()的方法,該方法的參數(shù)指定要下載的文件即可。當(dāng)然,在此之前要先調(diào)用setContentDisposition(null),參數(shù)為null表示告知瀏覽器下載文件。代碼如下:
SmartUpload su = new SmartUpload(); su.initialize(pageContext); su.setContentDisposition(null); //表示這是一個(gè)下載操作 su.downloadFile("uploads/fa79a56a-5e64-407d-a22b-8606d512b447.jpg"); smartupload組件包下載地址:http://download.csdn.net/detail/qq_24886937/9729267
以上所述是小編給大家介紹的使用smartupload組件實(shí)現(xiàn)jsp+jdbc上傳下載文件實(shí)例解析,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)VeVb武林網(wǎng)網(wǎng)站的支持!
新聞熱點(diǎn)
疑難解答