Jquery 的ajax实现文件上传,校验。
2017-11-06 14:58
429 查看
Html代码:
<div align="center">
<form id="uploadForm">
<input type="file" id="file" name="file"/>
<br/>
<br/>
<div class="iDate date">
<input type="text" id="datetime" name="datetime">
<button type="button" class="addOn"></button>
</div>
<br/>
<br/>
<input type="button" id="button" value="比较"/>
</form>
<br/>
<br/>
<p id="result" > </p>
</div>
Js代码:
$("#button").click(function(){
var obj = document.getElementById('file');
if(obj.value=='')
{
alert('请选择要核对的微信文件');
return;
}
var stuff=obj.value.match(/^(.*)(\.)(.{1,8})$/)[3];
if(stuff!='csv')
{
alert('文件类型不正确,请选择.csv文件');
return;
}
//获取文件名
var file = document.getElementById('file').files;
var filename = file[0].name;
//获取选择的时间
var datetime = $("#datetime").val();
var strs= new Array(); //定义一数组
strs = datetime.split("-"); //字符分割
/* alert(strs[1]);
alert(strs[2]); */
if(filename.indexOf(strs[1]) < 0 || filename.indexOf(strs[2]) < 0){
alert("请选择和文件相对应的核对时间!");
return;
}
var test = window.location.href;
var url = test.indexOf("?");
if(url == -1){
alert(test);
}else{
test = test.substr(0,url);
alert(test);
}
var formData = new FormData();
formData.append("myfile", document.getElementById("file").files[0]);
formData.append("datetime", datetime);
$.ajax({
url:test+'/ToCheck',
type: 'POST',
cache: false,
data: formData,
processData : false,
contentType : false,
success : function(jsonResponse) {
alert(jsonResponse.returnMessage);
/* $("#result").text(jsonResponse.returnMessage); */
$("#result").html(jsonResponse.returnMessage);
},
error : function(jsonResponse) {
alert("核对出错!!");
}
});
});
后台接收:
@SuppressWarnings("unchecked")
@RequestMapping(value = "/ToCheck")
@ResponseBody
public JsonResponse onFind(@RequestParam(value = "myfile", required = false)MultipartFile file,HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
JsonResponse jsonResponse = new JsonResponse();
jsonResponse.setReturnType(0);
String fileName = file.getOriginalFilename();
System.out.println(fileName);
String datetime = request.getParameter("datetime");
System.out.println(request.getParameter("datetime"));
CommonsMultipartFile cFile = (CommonsMultipartFile) file;
DiskFileItem fileItem = (DiskFileItem) cFile.getFileItem();
InputStream inputStream = fileItem.getInputStream();
FileInputStream fin = null;
// 如果是FileInputStream类型,进行转换
if
4000
(inputStream instanceof FileInputStream) {
System.out.println("1111");
fin = (FileInputStream) inputStream;
}
if(fin != null){
try {
jsonResponse.setReturnMessage(testCheck(datetime, fin));
} catch (Exception e) {
e.printStackTrace();
}
}else{
jsonResponse.setReturnMessage("上传的文件无法解析");
}
System.out.println(jsonResponse.getReturnMessage());
return jsonResponse;
}
<div align="center">
<form id="uploadForm">
<input type="file" id="file" name="file"/>
<br/>
<br/>
<div class="iDate date">
<input type="text" id="datetime" name="datetime">
<button type="button" class="addOn"></button>
</div>
<br/>
<br/>
<input type="button" id="button" value="比较"/>
</form>
<br/>
<br/>
<p id="result" > </p>
</div>
Js代码:
$("#button").click(function(){
var obj = document.getElementById('file');
if(obj.value=='')
{
alert('请选择要核对的微信文件');
return;
}
var stuff=obj.value.match(/^(.*)(\.)(.{1,8})$/)[3];
if(stuff!='csv')
{
alert('文件类型不正确,请选择.csv文件');
return;
}
//获取文件名
var file = document.getElementById('file').files;
var filename = file[0].name;
//获取选择的时间
var datetime = $("#datetime").val();
var strs= new Array(); //定义一数组
strs = datetime.split("-"); //字符分割
/* alert(strs[1]);
alert(strs[2]); */
if(filename.indexOf(strs[1]) < 0 || filename.indexOf(strs[2]) < 0){
alert("请选择和文件相对应的核对时间!");
return;
}
var test = window.location.href;
var url = test.indexOf("?");
if(url == -1){
alert(test);
}else{
test = test.substr(0,url);
alert(test);
}
var formData = new FormData();
formData.append("myfile", document.getElementById("file").files[0]);
formData.append("datetime", datetime);
$.ajax({
url:test+'/ToCheck',
type: 'POST',
cache: false,
data: formData,
processData : false,
contentType : false,
success : function(jsonResponse) {
alert(jsonResponse.returnMessage);
/* $("#result").text(jsonResponse.returnMessage); */
$("#result").html(jsonResponse.returnMessage);
},
error : function(jsonResponse) {
alert("核对出错!!");
}
});
});
后台接收:
@SuppressWarnings("unchecked")
@RequestMapping(value = "/ToCheck")
@ResponseBody
public JsonResponse onFind(@RequestParam(value = "myfile", required = false)MultipartFile file,HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
JsonResponse jsonResponse = new JsonResponse();
jsonResponse.setReturnType(0);
String fileName = file.getOriginalFilename();
System.out.println(fileName);
String datetime = request.getParameter("datetime");
System.out.println(request.getParameter("datetime"));
CommonsMultipartFile cFile = (CommonsMultipartFile) file;
DiskFileItem fileItem = (DiskFileItem) cFile.getFileItem();
InputStream inputStream = fileItem.getInputStream();
FileInputStream fin = null;
// 如果是FileInputStream类型,进行转换
if
4000
(inputStream instanceof FileInputStream) {
System.out.println("1111");
fin = (FileInputStream) inputStream;
}
if(fin != null){
try {
jsonResponse.setReturnMessage(testCheck(datetime, fin));
} catch (Exception e) {
e.printStackTrace();
}
}else{
jsonResponse.setReturnMessage("上传的文件无法解析");
}
System.out.println(jsonResponse.getReturnMessage());
return jsonResponse;
}
相关文章推荐
- 使用Java、Jquery、Ajax实现的带进度条的文件上传。
- 关于jQuery在Asp.Net Mvc 框架下Ajax文件上传的实现
- JQuery和Struts实现Ajax文件上传
- 转: 如何实现jQuery的Ajax文件上传
- 用jQuery Form Plugin实现Ajax无刷新的文件上传
- Jquery AjaxUpload实现文件上传功能代码实例教程
- 一个简单的jQuery插件ajaxfileupload实现ajax上传文件例子
- 一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
- jQuery插件AjaxFileUpload可以实现ajax文件上传
- 如何实现jQuery的Ajax文件上传
- jquery 实现ajax 上传文件的功能(使用插件 ajaxfileupload)
- 如何实现jQuery的Ajax文件上传,PHP如实文件上传. AJAX上传文件,PHP上传文件。
- 如何实现jQuery的Ajax文件上传
- 如何实现jQuery的Ajax文件上传
- Jquery AjaxUpload实现文件上传
- jQuery插件AjaxFileUpload可以实现ajax文件上传
- 一个简单的jQuery插件ajaxfileupload实现ajax上传文件例子
- JQuery的AJAX与Spring MVC实现异步文件上传
- Jquery AjaxUpload实现文件上传功能代码实例教程
- 一个简单的jQuery插件ajaxfileupload实现ajax上传文件例子