java使用ajax完成上传文件
更新时间:2022年06月23日 14:09:06 作者:MR_非凡
这篇文章主要为大家详细介绍了java使用ajax完成上传文件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了java使用ajax完成上传文件的具体代码,供大家参考,具体内容如下
使用ajax上传文件最重要的就是实例化FormData来进行上传文件:

1、html代码:
<div class="kuang"> <p>文件上传</p> <div class="san3"> <input type="file" name="fujianID" id="fujianID" onchange="UpdateFile()"/> <input type = "hidden" name="fujianid" id="file2" /> </div> </div>
2、ajax请求代码:
<script type="text/javascript">
//上传文件
function UpdateFile(){
var file_fujian = $("input[name='fujianID']").val();//用户文件内容(文件)
// 判断文件是否为空
if ( file_fujian== "") {
layer.msg("青选择上传的附件",{icon:1,time:1000});
return false;
}
//判断文件类型,根据自己需要来做判断
/*var fujianID = file_fujian.substring( file_fujian.lastIndexOf(".") + 1).toLowerCase();
if(fujianID != "xls" && fujianID !="xlsx"&&fujianID !="docx"&&fujianID !="doc"&&fujianID !="txt"){
layer.msg("请选择Execl文或者word文件或者txt文件格式!",{icon:1,time:2000});
return false;
}*/
//判断文件大小
var size1 = $("input[name='fujianID']")[0].files[0].size;
if (size1>104857600) {
layer.msg("上传的附件不能大于100M",{icon:1,time:2000});
return false;
}
boo1 = true;
var type = "file";
var formData = new FormData();//这里需要实例化一个FormData来进行文件上传
formData.append(type,$("#fujianID")[0].files[0]);
$.ajax({
type:'POST',
url:'<%=request.getContextPath()%>/login/fujian_file',
data:formData,
async:false,
processData:false,
contentType:false,
success:function(data){
if (data=="error") {
layer.msg("附件添加失败",{icon:1,time:2000});
}else{
$("#file2").val(data.list);
layer.msg("附件已添加",{icon:1,time:2000});
}
}
});
}3、Java后台数据处理代码:
/**
* 上传文件
* @param file
* @param model
* @param request
* @return
*/
@RequestMapping(value="/fujian_file")
@ResponseBody
public Map<String, Object> uploadToUser(@RequestParam("file") MultipartFile file, Model model,HttpServletRequest request) {
String fileName = file.getOriginalFilename();
if (fileName.indexOf("\\") != -1) {
fileName = fileName.substring(fileName.lastIndexOf("\\"));
}
//String filePath = request.getContextPath()+ File.separator+"WebRoot"+ File.separator+"updatefile"+ File.separator;
// 获取项目名称,文件上传位置
String filePath = request.getSession().getServletContext().getRealPath("/static/updatefile/files");
File f = new File(filePath);
if (!f.exists()) {
f.mkdirs();// 不存在路径则进行创建
}
FileOutputStream out = null;
try {
// 重新自定义文件的名称
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String d = sdf.format(date);// 时间
//拼接文件路径和文件名
filePath = filePath +File.separator+ d + fileName;
out = new FileOutputStream(filePath);
out.write(file.getBytes());
out.flush();//清空缓冲区的数据流
out.close();//关闭流
} catch (Exception e) {
//System.out.println(e); //打印抛出的异常
}
Map<String,Object> map = new HashMap<String,Object>();
map.put("list",filePath );
return map; // 返回文件地址
}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
idea的easyCode的 MybatisPlus模板的配置详解
这篇文章主要介绍了idea的easyCode的 MybatisPlus模板的配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-09-09
java 集合工具类Collections及Comparable和Comparator排序详解
这篇文章主要介绍了java集合工具类Collections及Comparable和Comparator排序详解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下2022-06-06
去掉IntelliJ IDEA 中 mybatis 对应的 xml 文件警告的教程图解
本文通过图文并茂的形式给大家介绍了去掉IntelliJ IDEA 中 mybatis 对应的 xml 文件警告的教程,需要的朋友可以参考下2018-06-06
使用nacos命名空间namespace用法,测试时做实例隔离
Nacos命名空间用于管理多套不同环境的服务器,增加一个命名空间的概念,可以用一套Nacos注册中心管理多套不同的环境2024-12-12


最新评论