<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="js/jquery-3.4.0.js" ></script>
<script type="text/javascript" src="js/jquery-3.4.0.min.js" ></script>
<title></title>
</head>
<body>
<a href="javascript:;" onclick="downloadFileName(this)">1565979955472.jpg</a></br>
<a href="javascript:;" onclick="downloadFileName(this)">1565577591921.jpg</a></br>
<a href="javascript:;" onclick="downloadFileName(this)">1565934399181.png</a></br>
</body>
</html>
<script type="text/javascript">
function downloadFileName(object) {
alert(111)
var filename = $(object).html();
alert(filename);
var url = "http://localhost:8080/download";
$.ajax({
url: url,
type: 'post',
data: {
"filename":filename
},
success: function (result) {
var form = $('<form method="POST" action="http://localhost:8080/download">');
form.append($('<input type="hidden" name="filename" value="'+ filename +'">'));
$('body').append(form);
form.submit();
},
error:function(){
alert("下载失败");
}
});
}
</script><!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="js/jquery-3.4.0.js" ></script>
<script type="text/javascript" src="js/jquery-3.4.0.min.js" ></script>
<title></title>
</head>
<body>
<a href="javascript:;" onclick="downloadFileName(this)">1565979955472.jpg</a></br>
<a href="javascript:;" onclick="downloadFileName(this)">1565577591921.jpg</a></br>
<a href="javascript:;" onclick="downloadFileName(this)">1565934399181.png</a></br>
</body>
</html>
<script type="text/javascript">
function downloadFileName(object) {
alert(111)
var filename = $(object).html();
alert(filename);
var url = "http://localhost:8080/download";
$.ajax({
url: url,
type: 'post',
data: {
"filename":filename
},
success: function (result) {
var form = $('<form method="POST" action="http://localhost:8080/download">');
form.append($('<input type="hidden" name="filename" value="'+ filename +'">'));
$('body').append(form);
form.submit();
},
error:function(){
alert("下载失败");
}
});
}
</script>
package com.ajax.upload.ajaxuploaddemo.testupload;
import com.alibaba.fastjson.JSONArray;
import org.apache.commons.io.IOUtils;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.nio.file.Path;
import java.util.HashMap;
import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/**
* @program: ajax-upload-demo
* @author: Mr.XueWeiDong
* @create: 2019-08-18 08:42
**/
@RestController
@CrossOrigin(allowCredentials="true", allowedHeaders="*")
public class Upload {
@RequestMapping(value = "/upload",method = RequestMethod.POST)
public Object upload(@RequestParam(value = "file_upload",required = true) MultipartFile file_upload){
System.out.println("进入上传文件的方法");
String name = file_upload.getOriginalFilename();
System.out.println(name);
Map map = new HashMap();
map.put("name",name);
map.put("isSuccess",true);
map.put("data","");
return map;
}
@RequestMapping(value="/download",method = RequestMethod.POST)
public ResponseEntity<byte[]> download(HttpServletRequest request,
@RequestParam("filename") String filename)throws Exception {
System.out.println("进入下载东西的方法");
//从前端获取文件名
System.out.println(filename);
String path="F:\\place\\statics\\PlacePicth";
//拼接文件路径
String pathAndFilename=path+"\\"+filename;
System.out.println(pathAndFilename);
//创建文件对象以供后面流传输
File file=new File(pathAndFilename);
byte body[]=null;
ResponseEntity<byte[]> entity=null;
try {
//将文件读到byte数组
InputStream input=new FileInputStream(file);
body=new byte[input.available()];
input.read(body);
//定义http头 ,状态
HttpHeaders header=new HttpHeaders();
header.add("Content-Disposition", "attchement;filename=" + file.getName());
HttpStatus statusCode = HttpStatus.OK;
//定义ResponseEntity封装返回信息
entity = new ResponseEntity<byte[]>(body, header, statusCode);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return entity;
}
}