一、问题
需要在项目里添加一个上传excel文件的功能,因为其他同样的后台里面有上传文件的功能,第一反应就是想着直接用。了解了一下发现它是利用bootstrap的fileinput实现的,但是我怎么都不能把fileinput插件给加到java的项目里,然后就只能自己用js实现吧。好像也没什么特别的需求。
1)原本的样式不好看,需要和项目一致
2)只上传xls和xlxs的文件
二、代码
<input type="file" id="file" name="myfile" style="display: none" />
<input type="text" id="filename" style="display:none"></span>
<input type="button" onclick="upload()" value="选择文件上传" />
function UpladFile(fileObj) {
var form = new FormData(); // FormData 对象
form.append("file", fileObj); // 文件对象
$.ajax({
url: 'xxx', //url地址
type: 'POST', //上传方式
data: form, // 上传formdata封装的数据
dataType: 'JSON',
cache: false, // 不缓存
processData: false, // jQuery不要去处理发送的数据
contentType: false, // jQuery不要去设置Content-Type请求头
success:function (data) { //成功回调
console.log(data);
},
error:function (data) { //失败回调
console.log(data);
}
});
} function upload() {
$("#file").click();
$('#file').change(function (e) {
var fileName = e.target.files[0];//js 获取文件对象
if(fileName !== undefined){
var file_typename = fileName.name.substring(fileName.name.lastIndexOf('.'));
if (file_typename === '.xlsx' || file_typename === '.xls') {
$("#filename").css("display","block");
$("#filename").val(fileName.name);
UpladFile(fileName);
}else {
console.log("请选择正确的文件类型!")
}
}else{
console.log("请选择正确的文件!")
}
}
三、可以考虑的地方
1)控制上传文件大小
2)取消上传