smartupload

轉載

上傳下載組件SmartUpload使用方法

本篇將講述java常用的上傳/下載組件 SmartUpload 的詳細java的朋友不會陌生,幾乎在所有的B/S架構的項目或者產品中都會用到文件的上傳/下載。

關於SmartUpload組件可以在本篇下面的附件中下載。(已經解決上傳/下載中文文件名的亂碼問題,本人的開發環境均爲UTF-8環境)

1)文件上傳


Html代碼

1         <%@ page contentType="text/html;charset=UTF-8"%><%@ page import="com.soft4j.httpupload4j.SmartUpload"%><%@ page import="com.soft4j.bo.WebFileMgr"%><%  

2             String ret = null;  

3             SmartUpload su = null;  

4             try{  

5                 su = new SmartUpload();  

6                 su.initialize(pageContext);  

7                 su.upload();  

8                 ret = WebFileMgr.upload(su,pageContext);//WebFileMgr.java 處理文件上傳  

9                 if(ret!=null){   

10                  out.print("successed");  

11              }  

12          }catch(Exception e){  

13              out.print("faild");  

14          }finally{  

15              su = null;  

16          }  

17      %> 



WebFileMgr.upload(su,pageContext)
方法內容:

Java代碼

18        /**

19      * 上傳方法.

20      * @param su

21      * @param pageContext

22      * @return

23      * @throws Exception

24      */ 

25        public static String upload(SmartUpload su,PageContext pageContext) throws Exception {  

26            com.soft4j.httpupload4j.File suFile = null;  

27            int fileCount = 0;  

28            int maxFileSize = 900;//單個文件最大爲900K 

29            String AllowedExtensions=",jpg,jpeg,gif,png,";//允許上傳的文件類型 

30            try {  

31                   

32                for (int i=0; i<su.getFiles().getCount();i++) {  

33                    suFile = su.getFiles().getFile(i);  

34                    if (suFile.isMissing())  

35                        continue;  

36                    fileSize = suFile.getSize()/1024;//字節轉換成KB 

37                    if(fileSize==0) fileSize=1;  

38        

39                    if(maxFileSize<fileSize) throw new Exception("單個上傳文件的容量不能超過["+maxFileSize+"KB]");  

40        

41                    if (suFile.getFileExt() == null 

42                            || "".equals(suFile.getFileExt())) {  

43                        fileExt = ",,";  

44                    } else {  

45                        fileExt = "," + suFile.getFileExt().toLowerCase() + ",";  

46                    }  

47        

48                    if (!"".equals(AllowedExtensions)  

49                            && AllowedExtensions.indexOf(fileExt) == -1) {  

50                        throw new Exception("您上傳的文件[" + suFile.getFileName()  

51                                + "]的類型爲系統禁止上傳的文件類型,不能上傳!");  

52                    }  

53        

54                    fileCount++;  

55                }  

56                if (fileCount==0) throw new Exception("請選擇上傳的文件");  

57        

58                StringBuffer fullFileName = null;//保存到服務器上的文件名(帶路徑) 

59                for (int i=0; i<su.getFiles().getCount();i++) {  

60                    suFile = su.getFiles().getFile(i);  

61                    if (suFile.isMissing()) continue;  

62                    fullFileName = new StringBuffer("文件的路徑");//填寫 文件的路徑 

63                    fullFileName.append("文件名");//填寫 文件名 

64                    suFile.saveAs(fullFileName.toString(),SmartUpload.SAVE_PHYSICAL);  

65                }  

66                return "successed";  

67            } finally {  

68              // 

69            }  

70        } 



上面的JSP,Java代碼就可以實現文件的上傳.

2)文件下載


下載相對更爲簡單,只要設定下載的文件名(帶路徑)就可以了.

Html代碼

71      <%@ page contentType="text/html;charset=UTF-8"%> 

72      <%@ page import="com.soft4j.httpupload4j.SmartUpload"%> 

73      <%  

74          //新建一個SmartUpload對象  

75          SmartUpload su = new SmartUpload();  

76          //初始化  

77          su.initialize(pageContext);  

78          //設定要下載的文件名(帶路徑)  

79          String fileName="下載的文件名";//文件名(帶路徑)  

80          try{  

81              su.downloadFile(fileName);//下載文件  

82          }catch(Exception e){  

83              e.printStackTrace();  

84              out.println(e.toString());  

85          }  

86          response.getOutputStream().close();  

87      %> 





附錄:
(1).
解決中文問題的修改說明.參見[zip壓縮包中的SmartUpload.java]
(2). smartupload.zip

http://dl.javaeye.com/topics/download/b3f67e80-1177-31e5-b9af-9f3bce293e70


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章