SSMフレーム下のファイルのアップロードダウンロード(コンテンツがない場合jsポップウィンドウヒント)
12177 ワード
SSMフレームワークの下でファイルのアップロードとダウンロード
すべてオリジナルではなく、学習した内容を記録するだけで、自分でjs判空弾窓の機能を追加しました.
1.まず、次のようなテスト用のjspページを作成します.
2.私たちのmavenプロジェクトのpom.xmlファイルにfileuploadファイルを追加してjarパッケージをアップロードします.そうしないと、次のようにエラーが発生する可能性があります.
3.sringのservletビュー解析器の下にCommonsMultipartResolverファイル解析器を定義します.これに参加したときにプロジェクトを実行し、fileuload関連jarパッケージがないとエラーが表示されます.
4.controllerレイヤにspringmvcアップロードダウンロードのコードを書いて、以下のようにします.
Springmvcのアップロードとダウンロードが便利で、コードを直接コピーして使用します.
5.使用時に選択されていないファイルがバックグラウンド・データベースに格納されていることが判明したため、jsポップ・ウィンドウが追加され、ファイルが選択されていない場合にヒントが表示されます.
すべてオリジナルではなく、学習した内容を記録するだけで、自分でjs判空弾窓の機能を追加しました.
1.まず、次のようなテスト用のjspページを作成します.
"java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> title>
head>
<body>
<form action="http://localhost:8080/uploadDemo/rest/file/upload" method="post" enctype="multipart/form-data">
:<input type="file" name="file" width="120px">
<input type="submit" value=" ">
form>
<hr>
<form action="http://localhost:8080/uploadDemo/rest/file/down" method="get">
<input type="submit" value=" ">
form>
body>
html>
2.私たちのmavenプロジェクトのpom.xmlファイルにfileuploadファイルを追加してjarパッケージをアップロードします.そうしないと、次のようにエラーが発生する可能性があります.
<dependency>
<groupId>commons-fileuploadgroupId>
<artifactId>commons-fileuploadartifactId>
<version>1.3version>
dependency>
3.sringのservletビュー解析器の下にCommonsMultipartResolverファイル解析器を定義します.これに参加したときにプロジェクトを実行し、fileuload関連jarパッケージがないとエラーが表示されます.
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="utf-8">property>
<property name="maxUploadSize" value="5242440">property>
bean>
4.controllerレイヤにspringmvcアップロードダウンロードのコードを書いて、以下のようにします.
package com.baidu;
@RequestMapping("file")
@Controller
public class FileController {
/**
*
* @param file
* @return
* @throws IOException
*/
@RequestMapping(value="/upload",method=RequestMethod.POST)
@ResponseBody
public String upload(MultipartFile file,HttpServletRequest request) throws IOException{
String path = request.getSession().getServletContext().getRealPath("upload");
String fileName = file.getOriginalFilename();
File dir = new File(path,fileName);
if(!dir.exists()){
dir.mkdirs();
}
//MultipartFile
file.transferTo(dir);
return "ok!";
}
/**
*
* @param request
* @param response
* @throws Exception
*/
@RequestMapping("/down")
public void down(HttpServletRequest request,HttpServletResponse response) throws Exception{
// ,myfile.txt
String fileName = request.getSession().getServletContext().getRealPath("upload")+"/myfile.txt";
//
InputStream bis = new BufferedInputStream(new FileInputStream(new File(fileName)));
//
String filename = " .txt";
// ,
filename = URLEncoder.encode(filename,"UTF-8");
//
response.addHeader("Content-Disposition", "attachment;filename=" + filename);
//1. ContentType , ,
response.setContentType("multipart/form-data");
BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
int len = 0;
while((len = bis.read()) != -1){
out.write(len);
out.flush();
}
out.close();
}
}
Springmvcのアップロードとダウンロードが便利で、コードを直接コピーして使用します.
5.使用時に選択されていないファイルがバックグラウンド・データベースに格納されていることが判明したため、jsポップ・ウィンドウが追加され、ファイルが選択されていない場合にヒントが表示されます.
<form action="" onsubmit="return checkfile()"
method="post" enctype="multipart/form-data">
<div>
<label style="width:80px;float:left;margin-top:15px;"> :label>
<input class="logininput" style="width:200px;float:left;margin-top:12px;" type="file" id="file">
<button type="submit"
style="float:left;width:80px;float:left;margin-top:12px;margin-left:10px"> button>
div>
form>
<script>
function checkfile() {
var file = document.getElementById('file');;
if (file.value == '' || file.value == undefined || file.value == null) {
alertmsg(" !", 'warning');
return false;
} else {
return ture;
}
}
script>