ファイルのアップロードとダウンロードのためのspringboot

1、JSP

機能をアップロード:

<TRクラス= "main_table_tr"> 
<TDクラス= "td_title"> <Pクラス= "add_table_p2">附件:</ P> </ TD>
<TD>
の<input type = "テキスト" ID = "attach_file"名前= "attach_file"クラス= "td_input"値= "$ {bean.attach_file}"
プレースホルダ= "点击选择文件" onclickの= "javascriptの:$( '入力[名前= \'で、inputFile \ ']')をクリック()。 ;」読み取り専用のスタイル= "幅:844px;" />
<入力タイプ= "ファイル" ID = "で、inputFile"名前= "で、inputFile"スタイル= "表示:なし;"
onchange = "ジャバスクリプト:$( '入力[名前= \' attach_fileの\ ']')のval(this.files [0] .nameの);" />
の<input type =」



<a href="<%=path %> /file/download?fileName=${bean.attach_file} "> $ {} bean.attach_fileする</a>


2、JAVAの背景

パッケージcom.csg.scarmknowledge.controller。

輸入org.slf4j.Logger。
輸入org.slf4j.LoggerFactory;
輸入org.springframework.stereotype.Controller。
輸入org.springframework.web.bind.annotation *。;
輸入org.springframework.web.multipart.MultipartFile。
輸入org.springframework.web.multipart.MultipartHttpServletRequest;
インポートのjavax.servlet.http.HttpServletRequest;
インポートのjavax.servlet.http.HttpServletResponse;
輸入java.io. *;
輸入はjava.util.List;

/ **
*文件上传下载
* /
@Controller
@RequestMapping( "/ファイル")
publicクラスFileController {

プライベートロガーログ= LoggerFactory.getLogger(FileController.class)。

/ **
*シングルファイルアップロード
* @param MultipartHttpServletRequest
* @return
* /
@ RequestMapping(値= "/アップロード")
@ResponseBody
公共の文字列のアップロード(HttpServletRequestのリクエスト、MultipartHttpServletRequest MultipartHttpServletRequest){
//アップロードファイルのパスを取得します
MultipartFile uploadFile = multipartHttpServletRequest.getFile( "ファイル");
文字列uploadFilePath = "";
IF(uploadFile = NULL){!
uploadFilePath uploadFile.getOriginalFilename =();
のSystem.out.println( "uploadFlePath:" + uploadFilePath);
}他{
リターン"2";
}
//傍受アップロードファイル名
ストリングuploadFileName = uploadFilePath.substring(uploadFilePath.lastIndexOf( '\\')+ 1、uploadFilePath.indexOf() '');
System.out.println( "multiReq.getFile()" + uploadFileName)。
//截取上传文件的后缀
ストリングuploadFileSuffix = uploadFilePath.substring(uploadFilePath.indexOf()+ 1、uploadFilePath.length() '');
System.out.println( "uploadFileSuffix:" + uploadFileSuffix)。
FileOutputStream fosの= NULL;
FileInputStreamのFIS = NULL;
{試みる
FIS =(FileInputStreamを)multipartHttpServletRequest.getFile( "ファイル")のgetInputStream()。
FOS =新しいのFileOutputStream(新しいファイル( "E:\\ uploadFiles \\" "" + uploadFileName +
バイト[] TEMP =新しいバイト[1024];
int型I = fis.read(温度)。
(!I = -1){一方
fos.write(温度、0、temp.length)。
fos.flush();
I = fis.read(TEMP)。
}
戻り「1」。
}キャッチ(IOExceptionを電子){
e.printStackTrace();
} {ついに
(!FIS = null)の場合には{
{みてください
)(fis.closeを。
}キャッチ(IOExceptionを電子){
e.printStackTrace();
}
}
{(FOS!= null)の場合は
{みてください
fos.close();
}キャッチ(IOExceptionを電子){
e.printStackTrace();
}
}
}
"0"を返します。
}

/ **
*文件下载
* @paramファイル名
* @param応答
* @return
* /
@GetMapping( "/ダウンロード")
@ResponseBody
公共ボイドdownloadFile(@RequestParam( "FILENAME")文字列ファイル名、HttpServletResponseの応答)にUnsupportedEncodingExceptionをスロー{
文字列filePathに= "E:\\ uploadFiles"。
ファイルファイル=新しいファイル(filePathに+ "/" + fileNameに)。
(ファイルの場合。
response.setContentType( "アプリケーション/ vnd.ms-エクセル;のcharset = UTF-8");
response.setCharacterEncoding( "UTF-8");
// response.setContentType( "アプリケーション/強制ダウンロード");
response.setHeader( "コンテンツの廃棄"、 "添付; fileNameに=" + java.net.URLEncoder.encode(ファイル名、 "UTF-8"));
バイト[]バッファ=新しいバイト[1024];
FileInputStreamのFIS = NULL; //文件输入流
にBufferedInputStreamビス= NULL;

OutputStreamのOS = NULL; //输出流
試み{
OS = response.getOutputStream()。
FIS =新しいFileInputStreamを(ファイル);
ビス=新たにBufferedInputStream(FIS)。
int型I = bis.read(バッファ)
(!I = -1){一方
os.write(バッファ)
I = bis.read(バッファ)
}

}キャッチ(例外e){
// TODO自動生成キャッチブロック
e.printStackTrace();
}
のSystem.out.println( "----------ファイルのダウンロード---" + fileNameに)。
{試みる
bis.closeを();
fis.close();
}キャッチ(IOExceptionを電子){
// TODO自動生成キャッチブロック
e.printStackTrace();
}
}
}
}

おすすめ

転載: www.cnblogs.com/wzb0228/p/11343669.html