SmartUpload組件只有5個分別是:File、Files、Request、SmartUpload、SmartUploadException類,其中,File代表用戶上傳的文件,Files代表用戶上傳的多個文件,Request相當于HttpServletRequest的功能,用于獲取表單數據,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>
//創建SmartUpload的實例 SmartUpload su = new SmartUpload(); //初始化,如果是在Servlet中使用,則調用另一個重載方法:initialize(ServletConfig, HttpServletRequest, HttpServletResponse) su.initialize(pageContext); //完成上傳操作 su.upload(); //將上傳的文件保存到指定的文件夾。參數1表示文件保存的路徑,參數2是可選選項 su.save("uploads/", SmartUpload.SAVE_VIRTUAL);
在save方法中,有三個常量:SAVEAS_PHYSICAL,SAVEAS_VIRTUAL,SAVEAS_AUTO,意義分別是:
SAVEAS_PHYSICAL表明以操作系統的根目錄為文件根目錄另存文件,SAVEAS_VIRTUAL表明以Web應用程序的根目錄為文件根目錄另存文件,SAVEAS_AUTO則表示讓組件決定,當Web應用程序的根目錄存在另存文件的目錄時,它會選擇SAVEAS_VIRTUAL,否則會選擇SAVEAS_PHYSICAL。
如果希望給文件重命名(這是經常遇到的問題),可以調用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()){ //保存單個文件,參數1為文件名,參數2為可選選項。 f.saveAs("uploads/" + UUID.randomUUID().toString() + "." + f.getFileExt(), SmartUpload.SAVE_VIRTUAL); } }
使用SmartUpload實現文件下載就更簡單了,不再直接和數據流打交道,非常貼心的設計。SmartUpload定義了一個名為downloadFile()的方法,該方法的參數指定要下載的文件即可。當然,在此之前要先調用setContentDisposition(null),參數為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組件實現jsp+jdbc上傳下載文件實例解析,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
新聞熱點
疑難解答