Baiduのアップロードファイルエディタ

遠位的に許容されるオブジェクトエディタ百度(遠位必須)

1  パブリック クラス ImageVoが実装シリアライズを{
 2      プライベート 静的 最終 長いのserialVersionUID = -3699242044954063640L 3  
4      プライベート文字原= "" ;
5      プライベート int型のサイズ= 0 ;
6      プライベート文字列の状態= "ERROR" ;
7      プライベート文字列のタイトル=「」;
8      プライベート文字列型=「」;
9      プライベート文字列のURL = "" ;
10 }

コントローラ(変換要求があります)

1つの 公共ImageVoのINIT(HttpServletRequestのリクエスト、HttpServletResponseの応答){
 2          のtry {
 3              CommonsMultipartResolver multipartResolver = 新しいCommonsMultipartResolver(
 4                      でrequest.getSession()のgetServletContext()。)。
5              あれば(multipartResolver.isMultipart(リクエスト)){
 6                  MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)要求。
7                  マップFILEMAP = <文字列、MultipartFile> multiRequest.getFileMap();
8                  MultipartFileファイル= fileMap.get( "upfile" )。
9                  // クライアント・システム、ファイル名を元のファイルに戻る
10                  列fileRealName = file.getOriginalFilename();
 11  
12である                 INT pointIndex = fileRealName.lastIndexOf( ""); // ドットの位置番号
13である                  文字列fileSuffix = fileRealName.substring (pointIndex); // ファイル拡張子を傍受
14  
15                  列UUID = UUID.randomUUID()のtoString();.
 16  
。17                  日のD = 新しい新しい日付();
 18である                  てSimpleDateFormat formatYear = 新しい新しいてSimpleDateFormat( "YYYY" 。19                 SimpleDateFormat formatMonthDay = 新しいてSimpleDateFormat( "MMDD" );
20                  ストリング年= formatYear.format(D)。
21                  列MONTHDAY = formatMonthDay.format(D)。
22                  文字列imgStr = "/" + "IMG" + "/" +年+ "/" + MONTHDAY + "/" + UUID + fileSuffix。
23  
24                  ImageVo imageVo = 新しいImageVo()。
25                  = toFileのファイルmultipartFileToFile(ファイル);
                                       28                  }
 29                  UpYun upYun = 新しいUpYun()。
30                  試み{
 31                      // 图片上传到upyun 
32                      ブール WRITEFILE = upYun.writeFile(imgStr、toFileの)。
33                      であれば(WRITEFILE){
 34                          imageVo.setOriginal(fileRealName)。
35                          imageVo.setState( "成功" )。
36                          imageVo.setType(fileSuffix)。
37                          imageVo.setTitle(UUID + fileSuffix)。
38                         文字列のURL = "http://img.hotyq.com" + imgStr。
39                          imageVo.setUrl(URL);
40                          リターンimageVo。
41                      } {
 42                          log.error( "TDCode - generateTDCodeImage - upyunアップロードが失敗します" )。
43                          戻り 新しい)(ImageVoします。
44                      }
 45                  } キャッチ(IOExceptionを電子){
 46                      log.error( "TDCode - generateTDCodeImage - upyunアップロードに失敗:" 、E)。
47                      リターン 新しいですImageVo();
48                  } 最後に{
 49                      toFile.delete()。
50                  }
 51              } {
 52                  リターン 新しいImageVo()。
53              }
 54  
55          } キャッチ(例外e){
 56              // TODO自動生成されたcatchブロック
57              log.error( "管理者- UploadController-init--" 、E)。
58              戻る 新しい)(ImageVoを。
59          }
 60      }

ファイル形式の変換(MultipartFileターンファイル)

1  公共の 静的ファイルmultipartFileToFile(@RequestParam MultipartFileファイル)スロー例外{
 2          = toFileのファイルヌル3          であれば(file.equals( "")|| file.getSize()<= 0 ){
 4              =ファイルヌル5              リターン  はnull ;
6          } {
 7              のInputStreamイン= NULL ;
8つの              イン= file.getInputStream()。
9              toFileの= 新しいファイル(file.getOriginalFilename());
10              inputStreamToFile(INS、toFileの)。
11              ins.close();
12              リターンtoFileの。
13          }
 14      }
 15  
16      公共 静的 ボイドinputStreamToFile(入力ストリームのイン、ファイルのファイル){
 17          のtry {
 18              のOutputStream OS = 新しいたFileOutputStream(ファイル)。
19              INT bytesRead = 0 20              バイト []バッファ= 新しい バイト [8192 ];
21              一方((bytesRead = ins.read(バッファ、0、8192))!= -1){
 22                  os.write(バッファ、0 、bytesRead)。
23              }
 24              にos.close()。
25              ins.close()。
26          } キャッチ(例外e){
 27              e.printStackTrace();
28          }
 29      }

 

おすすめ

転載: www.cnblogs.com/zhanglingbing/p/10974870.html