上傳文件複用代碼【fileUpload】

這是使用了FileUpload上傳組件的,解決了中文亂碼問題了,而且刪除了臨時文件的。javascript

  • 使用了一個Book對象作示範
private Book uploadData(HttpServletRequest request) {

        Book book = new Book();
        try{

            //1.獲得解析器工廠
            DiskFileItemFactory factory = new DiskFileItemFactory();

            //2.獲得解析器
            ServletFileUpload upload = new ServletFileUpload(factory);

            //設置編碼
            upload.setHeaderEncoding("UTF-8");


            //爲上傳表單,則調用解析器解析上傳數據
            List<FileItem> list = upload.parseRequest(request);  //FileItem

            //遍歷list,獲得用於封裝第一個上傳輸入項數據fileItem對象
            for(FileItem item : list){

                if(item.isFormField()){

                    //獲得的是普通輸入項
                    String name = item.getFieldName();  //獲得輸入項的名稱
                    String value = item.getString("UTF-8");

                    //使用BeanUtils封裝數據
                    BeanUtils.setProperty(book, name, value);
                }else{

                    //獲得上傳輸入項

                    //獲得上傳文件名全路徑
                    String filename = item.getName();

                    //截取文件名
                    filename = filename.substring(filename.lastIndexOf("\\")+1);

                    InputStream in = item.getInputStream();   //獲得上傳數據

                    int len = 0;
                    byte buffer[]= new byte[1024];

                    //若是沒有這個目錄,就建立它
                    String savepath = this.getServletContext().getRealPath("/image");
                    File file = new File(savepath);
                    if (!file.exists()) {
                        file.mkdir();
                    }

                    FileOutputStream out = new FileOutputStream(savepath + "\\" + filename);
                    while((len=in.read(buffer))>0){
                        out.write(buffer, 0, len);
                    }
                    //設置圖片的名字
                    book.setImage(filename);

                    in.close();
                    out.close();

                    //關閉臨時文件
                    item.delete();

                }
            }

        }catch (Exception e) {
            e.printStackTrace();
        }
        return book;
    }
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
相關文章
相關標籤/搜索