图片上传
</head>
<body>
<button type="button" class="layui-btn" id="test3"><i class="layui-icon"></i>上传图片</button>
<div id="div"></div>
</body>
<script type="text/javascript" src="../lib/jquery-2.1.4.min.js"></script>
<script src="../treetable/jquery.treetable.js"></script>
<script type="text/javascript" src="../lib/layui/layui.js"></script>
<script type="text/javascript" src="../lib/layui/layui.all.js"></script>
<script>
layui.use('upload', function(){
var $ = layui.jquery
,upload = layui.upload;
var uploadInst = upload.render({
elem: '#test3'
,url: glabalApiPath+"/layuiUpload.do"
,accept: 'file' //普通文件
,async:true
,before: function(obj){
obj.preview(function(index, file, result){
$('#img-preview').attr('src', result); //图片链接(base64)
});
}
,done: function(res, index, upload){
if(res.code==0){
alert(res.message);
}else{
alert(res.message);
}
}
});
});
后台代码
@Controller
public class UpLoadController {
@Autowired
ImgService imgService;
@RequestMapping(value = “layuiUpload.do”)
public @ResponseBody LayuiUpLoadReturn uploadTest1(@RequestParam(“file”) MultipartFile file,HttpServletRequest request) {
if (file == null && file.isEmpty()) {
return new LayuiUpLoadReturn(-1,”没有文件”,null);
}
String fileName = System.currentTimeMillis()+".jpg"; //+ file.getOriginalFilename(); // 获取传输过来的文件名字 + 当前时间戳 避免重复
System.out.println(fileName);
//if ("jpg,png,".contains(fileName.split("\\.")[1])) { // 根据文件的后缀判断保存再哪个文件夹下
if(file!=null){
//File imageDir = new File(System.getProperty("catalina.home") + File.separator + "webapps" + File.separator + "images");
File imageDir = new File(request.getSession().getServletContext().getRealPath("/images"));
if (!imageDir.exists()) {
imageDir.mkdirs();
}
//File imagePath = new File(System.getProperty("catalina.home") + File.separator + "webapps" + File.separator + "images" + File.separator + fileName);
File imagePath = new File(request.getSession().getServletContext().getRealPath("/images") + File.separator + fileName);
System.out.println(imagePath+"cchcch");
try {
file.transferTo(imagePath);
Img img = new Img();
img.setName(fileName);
imgService.insert(img);
return new LayuiUpLoadReturn(0,"保存成功",fileName);
} catch (IllegalStateException | IOException e) {
return new LayuiUpLoadReturn(-1,"保存失败!",e.getMessage());
} // 保存图片
}
return new LayuiUpLoadReturn(0,"保存成功",fileName);
}
/**
*
* @param request
* @param response
* @throws IOException
*/
@RequestMapping("/imgDown")
@ResponseBody
public JsonResult imgDown(String name,HttpServletRequest request,HttpServletResponse response) throws IOException{
String returnUrl = request.getSession().getServletContext().getRealPath("/images/")+name;
//Tomcat 安装目录
//String returnUrl = System.getProperty("catalina.home") + File.separator + "webapps" + File.separator + "images"+File.separator +name;
System.out.println(returnUrl);
//获取输入流
InputStream bis = new BufferedInputStream(new FileInputStream(new File(returnUrl)));
//假如以中文名下载的话
returnUrl = URLEncoder.encode(returnUrl,"UTF-8");
//设置文件下载头
response.addHeader("Content-Disposition", "attachment;filename=" + returnUrl);
//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();
return new JsonResult(0, true, "下载成功", null);
}
/**
*
*/
@RequestMapping("showPhoto")
@ResponseBody
public JsonResult showPhoto() {
JsonResult result = new JsonResult();
List<Img> list = imgService.selectAll();
List<Img> imglist = new ArrayList<Img>();
Map<String,Object> map = new HashMap<String,Object>();
for (Img img : list) {
/*String name = System.getProperty("catalina.home") + File.separator + "webapps" + File.separator + "images"+File.separator +img.getName();
System.out.println(name);
img.setName(name);*/
imglist.add(img);
}
if(list.size()!=0){
result.setCode(0);
result.setMessage("查询成功");
result.setSuccess(true);
result.setValue(imglist);
}else{
result.setCode(-1);
result.setMessage("无数据");
result.setSuccess(false);
result.setValue(imglist);
}
return result;
}
}