package com.netvox.lora.controller;
import org.springframework.core.io.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
/**
* @Package: com.netvox.lora.controller
* @ClassName: UploadController
* @Author: ZhanWeiFeng
* @Description: //TODO
* @Date: 2020.11.12 9:23
* @Version: 1.0
*/
@Controller
public class UploadController {
@RequestMapping("upload")
public StringuploadIndex() {
return "upload";
}
@RequestMapping(value ="/uploadSource", method = RequestMethod.POST)
@ResponseBody
public MapuploadSource(@RequestParam("file") MultipartFile file, @RequestParam("password") String password) {
Map result =new HashMap<>();
if (!password.equals("netvox5717188")){
result.put("code",-1);
result.put("msg","口令错误");
return result;
}
System.out.println(file);
String pathString =null;
try {
File directory =new File(Resource.class.getClassLoader().getResource("device.json").getPath());
pathString = directory.getCanonicalPath();
File files =new File(pathString);
//打印查看上传路径
System.out.println(pathString);
if (files.exists()){
files.delete();
}
file.transferTo(files);
result.put("code", 200);
result.put("msg", "success");
}catch (Exception e) {
result.put("code", -2);
e.printStackTrace();
}
return result;
}
}
前端代码
<!DOCTYPE html>
<html lang="en">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>文件上传
<link rel="stylesheet" href="/layui/css/layui.css">
<h1 align="center" style="font-size:30px">上传Lora设备描述文件
<script src="/layui/layui.all_zh.js">
<script src="/layui/jquery/jquery-3.3.1.min.js">
<form class="layui-form" action="">
<div class="layui-form-item">
<div class="layui-col-md12" style="margin-left:600px">
<label class="layui-form-label"> 口令:
<div class="layui-input-inline">
<input type="text" name="password" id="password" lay-reqtext="口令:" placeholder="请输入"
autocomplete="off" class="layui-input-inline lay-filter=password" >
<div class="layui-col-md12" style="margin-left:800px">
<button type="button" class="layui-btn" id="upload"><i class="layui-icon"></i>上传文件
<div class="layui-col-md12" style="margin-left:800px;margin-top:20px">
<button id="button" type="button" class="layui-btn">提交
var form =layui.form;
var password= $("#password").val();
// layui.use('upload', function () {
var upload =layui.upload;
//执行实例
var uploadInst = upload.render({
elem:'#upload' //绑定元素
, url:'http://localhost:8080/uploadSource' //上传接口.
,method:'POST'
,accept:'file'
,bindAction:'#button'
,auto:false
,data: {
password:$("#password").val()
},
before:function (obj) {
this.data.password = $("#password").val();
}
, done:function (res) {
//上传完毕回调
if (res.code==200){
alert("上传成功")
}else if(res.code==-1){
alert("口令错误请重新输入")
}else {
alert("文件上传错误请重新上传")
}
console.log("done")
}
, error:function (res) {
alert("上传失败")
//请求异常回调
console.log("error")
}
});
// });
</html>