public static String uploadFile(byte[] file, String filePath, String fileName) throws Exception {
File targetFile = new File(filePath);
if(!targetFile.exists()){
targetFile.mkdirs();
}
String pathas=filePath+fileName;
FileOutputStream out = new FileOutputStream(pathas);
out.write(file);
out.flush();
out.close();
return pathas;
}
// 检测报告添加接口 文件上传
@RequestMapping(value="/testuploadimg", method = {RequestMethod.POST,RequestMethod.GET})
public String uploadImg(@RequestParam("file") MultipartFile file,HttpServletRequest request,@RequestParam("cardnum")String cardnum,@RequestParam("remark")String remark,@RequestParam("examinee")String examinee,@RequestParam("pathname")String pathname ) {
String contentType = file.getContentType(); // 获取文件内容类型
String fileName = file.getOriginalFilename(); // 获取上传文件名字
String filePath = request.getSession().getServletContext().getRealPath("/upload/"); // 绝对路径
System.out.println("filePath="+filePath);
// System.out.println("filePath="+filePath);
try {
String uploadFile = HttpUtility.uploadFile(file.getBytes(), "E://upload/", fileName);
String addreport = cardservice.addreport(uploadFile,cardnum,remark,examinee,pathname);
return addreport;
} catch (Exception e) {
// TODO: handle exception
}
//返回json
return JSON.toJSONString(ResultsUtils.error(ResultEnums.UPLOAD_FILE_ERROR));
}
// 文件下载
@RequestMapping("/downreport")
public String downreport(HttpServletRequest request,HttpServletResponse response) throws UnsupportedEncodingException{
String paee=request.getParameter("path");
System.out.println("paee="+paee);
// String filke=request.getSession().getServletContext().getRealPath("/upload/");
// System.out.println("filke="+filke);
paee=paee.trim();
String flienames= paee.substring(paee.lastIndexOf("/")+1,paee.length());
System.out.println("flienames="+flienames);
response.setHeader("content-type", "application/octet-stream");
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename="+URLEncoder.encode(flienames,"UTF-8"));
byte[] buff = new byte[1024];
BufferedInputStream bis = null;
OutputStream os = null;
try {
os = response.getOutputStream();
bis = new BufferedInputStream(new FileInputStream(new File(paee))); //填写访问路径
int i = bis.read(buff);
while (i != -1) {
os.write(buff, 0, buff.length);
os.flush();
i = bis.read(buff);
}
} catch (IOException e) {
// e.printStackTrace();
} finally {
if (bis != null) {
try {
bis.close();
} catch (IOException e) {
// e.printStackTrace();
}
}
if(os!=null){
try {
os.close();
} catch (IOException e) {
// e.printStackTrace();
}
}
}
System.out.println("下载成功!");
return null;
}
--------------------------------------------------前端js--------------------------------------------------------------------------
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="../Css/bootstrap.css" />
<link rel="stylesheet" type="text/css" href="../Css/bootstrap-responsive.css" />
<link rel="stylesheet" type="text/css" href="../Css/style.css" />
<script type="text/javascript" src="../Js/jquery.js"></script>
<!-- <script type="text/javascript" src="../Js/jquery.sorted.js"></script> -->
<script type="text/javascript" src="../Js/bootstrap.js"></script>
<script type="text/javascript" src="../Js/ckform.js"></script>
<script type="text/javascript" src="../Js/common.js"></script>
<script type="text/javascript" src="../Js/api.js"></script>
<style type="text/css">
body {
padding-bottom: 40px;
}
.sidebar-nav {
padding: 9px 0;
}
@media (max-width: 980px) {
/* Enable use of floated navbar text */
.navbar-text.pull-right {
float: none;
padding-left: 5px;
padding-right: 5px;
}
}
#FileUpload {
width: 210px;
height: auto;
position: relative;
cursor: pointer;
outline: medium none;
filter: alpha(opacity=0);
-moz-opacity: 0;
/*opacity: 0;*/
border: 0px solid red ;
}
#son {width:100px; height:10px; background-color:red; text-align:center; line-height:10px; font-size:20px; font-weight:bold; border: 0px solid red;margin-top: 200px;}
#parent{width:100%; height:100%; border:0px solid #09F;position: absolute;top: 0px; display: none;opacity:0.5;text-align: center; background-color: #C0C0C0}
</style>
</head>
<body>
<form id="form" action="" enctype="multipart/form-data" method="post" >
<table class="table table-bordered table-hover definewidth m10" style="text-align: center;">
<tr>
<td class="tableleft" width="10%">上传报告:</td>
<td>
<input id="FileUpload" type="file" name="file"/>
</td>
</tr>
<tr>
<td class="tableleft" width="10%">报告名称:</td>
<td>
<input type="text" name="pathname" id="pathname"/>
</td>
</tr>
<tr>
<td class="tableleft">卡号:</td>
<td><input type="text" name="cardnum" id="cardnum"/></td>
</tr>
<tr>
<td class="tableleft">受检人:</td>
<td>
<select id="examinee" style="width: 210px; height: auto ;">
<!-- <option value="" style="text-align: center;"></option> -->
<!-- <option value="李四">李四</option> -->
<!-- <option value="王五">王五</option> -->
</select>
</td>
</tr>
<tr>
<td class="tableleft">备注:</td>
<td>
<input type="text" name="remark" style="height: 50px;" id="remark">
</td>
</tr>
<!-- <tr>
<td class="tableleft">备注:</td>
<td>
<a href="F://上传文件/Java数据结构和算法.(第二版).pdf" download="F://上传文件/Java数据结构和算法.(第二版).pdf" name="remark" style="height: 50px;" id="remark" > 数据接口算法</a>
</td>
</tr>
-->
<tr>
<td class="tableleft"></td>
<td>
<button type="button" class="btn btn-primary" type="button" id="btn">保存</button> <button type="button" class="btn btn-success" name="backid" id="backid">返回列表</button> <button type="button" class="btn btn-success" id="restss" >重置</button>
</td>
</tr>
</table>
</form>
<div id="parent">
<div id="son"></div>
</div>
</body>
</html>
<script>
$(function () {
// 返回列表
$('#backid').click(function(){
window.location.href="index.html";
});
});
// 重置
$("#restss").click(function() {
reset();
$("#examinee").find("option").remove();
$("#file").val("");
});
// 卡号光标离开事件
$("#cardnum").blur(function(){
var cardnum=$("#cardnum").val();
if(isNull(cardnum)){
alert("卡号不能为空!");
// $("#cardnum").focus();
return false ;
}
else {
// 受检人信息
examinees(cardnum);
}
})
// 显示受检人信息
function examinees(cardnum){
$.ajax({
url: url1+api.searchname+"cardnum="+cardnum,
type: 'get',
dataType: 'json'
})
.done(function(data) {
console.log(data);
if(data.results.status==603){
alert("卡号没有对应的受检人!");
$("#cardnum").val("");
$("#examinee ").empty();
return false ;
}
else {
var str="";
while(data.results.result!=0){
var datas= data.results.result.shift();
str+='<option value='+datas.id+'> '+datas.examinee_name+'</option>';
}
$("#examinee").html(str);
}
})
.fail(function(error) {
console.log("error");
});
}
// BUI.use('bui/uploader',function (Uploader) {
// *
// * 返回数据的格式
// *
// * 默认是 {url : 'url'},否则认为上传失败
// * 可以通过isSuccess 更改判定成功失败的结构
// var uploader = new Uploader.Uploader({
// render: '#J_Uploader',
// url: '../../../test/upload/upload.php'
// }).render();
// });
// 上传获取文件
// var imgs=[];//存储图片链接
// var fileM=document.querySelector("#file"); // 获取文件对象
// var fileM=document.getElementById("FileUpload").files[0]; // 获取文件对象
// console.log(fileM);
// console.log($("#FileUpload").get(0).files[0]);
//为文件上传添加change事件
// var fileObj;
// $("#file").on("change",function(){
// // console.log(fileM.files);
// //获取文件对象,files是文件选取控件的属性,存储的是文件选取控件选取的文件对象,类型是一个数组
// fileObj=fileM.files[0];
// // console.log(fileObj);
// //创建formdata对象,formData用来存储表单的数据,表单数据时以键值对形式存储的。
// formData.append('file',fileObj);
// })
// 提交点击事件
$("#btn").click(function(){
var formData=new FormData(); // 定义一个formdata对象
//创建ajax对象
var ajax=new XMLHttpRequest();
// var ddnum=$("#ddnum").val();
var cardnum=$("#cardnum").val();
// var flownum=$("#flownum").val();
var examinee=$("#examinee option:selected").val();
var remark=$("#remark").val();
var pathname=$("#pathname").val();
if(isNull(cardnum)||isNull(examinee)||isNull(pathname)){
alert("内容不能为空");
console.log("内容不能");
return ;
}else{
// formData.append("orderid",ddnum);
$("#parent").css("display","block");
var fileM=document.getElementById("FileUpload").files[0]; // 获取文件对象
// console.log(fileM);
formData.append('file',fileM);
formData.append("cardnum",cardnum);
formData.append("remark",remark);
// formData.append("flownum",flownum);
formData.append("examinee",examinee);
formData.append("pathname",pathname);
//发送POST请求
// ajax.open("POST",url1+api.testuploadimg,true);
// ajax.send(formData);
$.ajax({
url : url1+api.testuploadimg,
type : 'POST',
data : formData,
// 告诉jQuery不要去处理发送的数据
processData : false,
// 告诉jQuery不要去设置Content-Type请求头
contentType : false,
xhr: function(){ // 显示进度条
var xhr = $.ajaxSettings.xhr();
if(onprogress && xhr.upload) {
xhr.upload.addEventListener("progress" , onprogress, false);
return xhr;
}
} ,
success : function(responseStr) {
var data=JSON.parse(responseStr);
console.log(data);
console.log("success");
if(data.results.status==4){
alert(data.results.message);
window.location.href="index.html";
}
else {
alert("添加失败!");
reset();
}
},
error : function(responseStr) {
console.log("error");
}
});
// ajax.onreadystatechange=function(){
// if (ajax.readyState == 4) {
// // console.log(ajax.responseText);
// if (ajax.status>=200 &&ajax.status<300||ajax.status==304) {
// // console.log(ajax.responseText);
// // var obj=ajax.responseText;
// var obj=JSON.parse(ajax.responseText);
// // console.log(obj);
// if(obj.results.status==4){
// alert(obj.results.message);
// window.location.href="index.html";
// }
// }else{
// alert("添加失败!");
// reset();
// }
// }
// }
}
})
function onprogress(evt){
// console.log(123123);
var loaded = evt.loaded; //已经上传大小情况
var tot = evt.total; //附件总大小
var per = Math.floor(100*loaded/tot); //已经上传的百分比
$("#son").html( per +"%" );
$("#son").css("width" , per +"%");
}
</script>