jsp代码(文件上传)
-
<form id="upLoad" method="post">
-
<input type="file" id="yaFile" name="file">
<br/>
-
<input id="fileSubmit" type="button" value="提交">
-
</form>
js代码:这里我选择的是异步提交
-
$("#fileSubmit").click(function(){
-
var formData = new FormData();
-
formData.append("file", document.getElementById("upLoad").files[0]);
-
$.ajax({
-
cache: true,
-
type: "POST",
-
url:'路径',
-
data:formData,
-
processData: false,
//禁止jquery对DAta数据的处理,默认会处理
-
contentType: false,
//禁止设置请求类型
-
async: false,
-
error: function(request) {
-
alert("上传失败");
-
},
-
success: function(data) {
-
if(data==0){
alert("上传成功");
} } });});
java代码:文件上传
-
/**
-
* 文件上传功能
-
* @param file
-
* @return
-
* @throws IOException
-
*/
-
@RequestMapping(
"/upload")
-
@ResponseBody
-
public String upload(MultipartFile file,String faUrl,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
"0";
-
}
js代码:文件下载
function onClick() { var url ="路径" document.location.href=url; }
java代码:文件下载
-
/**
-
* 文件下载功能
-
* @param request
-
* @param response
-
* @throws Exception
-
*/
-
@RequestMapping(
"/fileDown")
-
@ResponseBody
-
public void fileDown(HttpServletRequest request,HttpServletResponse response){
-
//通过文件名找出文件的所在目录
-
String path = request.getSession().getServletContext().getRealPath(
"upload");
-
ServletOutputStream out;
-
//得到要下载的文件
-
File file =
new File(path);
-
try {
-
//设置响应头,控制浏览器下载该文件
-
response.setContentType(
"multipart/form-data");
-
//获得浏览器信息,并处理文件名
-
String headerType=request.getHeader(
"User-Agent").toUpperCase();
-
String fileName =
null;
-
if (headerType.indexOf(
"EDGE") >
0||headerType.indexOf(
"MSIE")>
0||headerType.indexOf(
"GECKO")>
0) {
-
fileName=URLEncoder.encode(file.getName(),
"UTF-8");
-
}
else{
-
fileName=
new String(file.getName().replaceAll(
" ",
"").getBytes(
"utf-8"),
"iso8859-1");
-
}
-
response.addHeader(
"Content-Disposition",
"attachment;filename="+fileName);
-
response.addHeader(
"Content-Length",
"" + file.length());
-
FileInputStream inputStream =
new FileInputStream(file);
-
-
out = response.getOutputStream();
-
-
int b =
0;
-
byte[] buffer =
new
byte[
1024];
-
while (b != -
1) {
-
b = inputStream.read(buffer);
-
//写到输出流(out)中
-
if(b!=-
1)
-
out.write(buffer,
0, b);
-
}
-
inputStream.close();
-
out.close();
//关闭输出流
-
out.flush();
-
}
catch (IOException e) {
-
e.printStackTrace();
-
}
-
}
以上为文件上传、文件下载的全部代码。