.showFileName1{
display: inline-block;
float: right;
margin-top: -38px;
margin-right: 108px;
}
.a-upload{
position: relative;
cursor: pointer;
overflow: hidden;
display: inline-block;
color: #fff;
}
.a-upload input{
position: absolute;
right: 0;
top: 0;
opacity: 0;
filter: alpha(opacity=0);
cursor: pointer;
}
<div class="showFileName1">
<a href="javascript:;" class="btn btn-success a-upload"><input type="file" file-model="myFile" onchange="change()" >导入Excel<iframe id="id_iframe" name="id_iframe" style="display:none;"></iframe></a>
</div>
$(".a-upload").on("change","input[type='file']",function(){
var filePath = $(this).val();
var arr= filePath.split('\\');
var fileName = arr[arr.length-1];
$(".showFileName1").html(fileName);
})
function change(){
var formData = new FormData();
var file = document.querySelector('input[type=file]').files[0];
formData.append('logo', file);
$.ajax({
type:'post',
url:'../apis/analysisexcel',
data:formData,
// 告诉jQuery不要去处理发送的数据
processData : false,
// 告诉jQuery不要去设置Content-Type请求头
contentType : false,
dataType: "json",
success:function(data){
alert(66);
},
error:function(data){
alert(77);
}
})
}
@RequestMapping(value="/analysisexcel",produces = { "application/json" },method = RequestMethod.POST)
@ResponseBody
public void analysisexcel(@RequestParam(value = "logo", required = true) MultipartFile logo,HttpServletRequest request){
try {
request.setCharacterEncoding("utf-8");
//获取输入流
InputStream is = logo.getInputStream();
//获取文件原始名称
//String fileName = new String(logo.getOriginalFilename().getBytes(),"utf-8");
String fileName = null;
//解析器解析request的上下文
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
//先判断request中是否包含multipart类型的数据
if(multipartResolver.isMultipart(request)){
//再将request中的数据转化成multipart类型的数据
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;
Iterator iter = multiRequest.getFileNames();
while(iter.hasNext()){
//记录上传过程起始的时间,用来计算上传时间
//int pre = (int) System.currentTimeMillis();
//这里的name为fileItem的alias属性值相当于form表单中的name
String name = (String)iter.next();
//根据name值拿取/文件
MultipartFile file = multiRequest.getFile(name);
if(file != null){
fileName = file.getOriginalFilename();
String path = "D:/excel/"+fileName;
File localFile = new File(path);
if(!localFile.getParentFile().exists()){
//如果目标文件所在的目录不存在,则创建父目录
localFile.getParentFile().mkdirs();
}
//写文件到本地
try {
file.transferTo(localFile);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}else{
System.out.println("不包含multipart类型的数据");
}
} catch (Exception e) {
e.printStackTrace();;
}
}