ajax异步请求上传图片,后台如何使用MultipartFile直接接受,post请求

啦啦啦灬 2019-09-18 04:42:26
后台只能使用MultipartFile类接收,post请求
...全文
1245 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
NANU-NANA 2019-09-20
  • 打赏
  • 举报
回复
引用 5 楼 啦啦啦灬 的回复:
[quote=引用 4 楼 NANU-NANA 的回复:] 一个简单的例子

 <form action="/user/upload/tuxiang" enctype="multipart/form-data" method="POST"> 
   <input type="file" name="photo" />
   <input type="submit" value="Upload Photo"/>
</form>
有没有用ajax的方法 [/quote] 已经有人回了,我就不写了。
散着步的码农 2019-09-20
  • 打赏
  • 举报
回复
var file = document.getElementById('file').files[0];
            var deptId = $("#deptId").val();
            var fd = new FormData();
            fd.append("deptId",deptId);
ajaxPostImage("/xxxxx.do", field, function (res) {
            //......
           
          
散着步的码农 2019-09-20
  • 打赏
  • 举报
回复
function ajaxPostImage(url,data,callback) {
    var index;
    $.ajax({
        url:url,
        async: false,
        dataType:"json",
        processData: false,  //tell jQuery not to process the data
        contentType: false,  //tell jQuery not to set contentType
        beforeSend: function () {
            //......
        },
        complete: function(){
            //......
        },
        data:data,
        type:"post",
        success:function(data){
            callback(data);
        },
        error:function(){
            //......
        }
    });
}
啦啦啦灬 2019-09-20
  • 打赏
  • 举报
回复
引用 4 楼 NANU-NANA 的回复:
一个简单的例子

 <form action="/user/upload/tuxiang" enctype="multipart/form-data" method="POST"> 
   <input type="file" name="photo" />
   <input type="submit" value="Upload Photo"/>
</form>
有没有用ajax的方法
啦啦啦灬 2019-09-19
  • 打赏
  • 举报
回复
引用 2 楼 NANU-NANA 的回复:
谢谢分享,记得及时结帖。

我求的是前端代码.后台的代码是我自己写上去的
NANU-NANA 2019-09-19
  • 打赏
  • 举报
回复
一个简单的例子


<form action="/user/upload/tuxiang" enctype="multipart/form-data" method="POST">
<input type="file" name="photo" />
<input type="submit" value="Upload Photo"/>
</form>
NANU-NANA 2019-09-18
  • 打赏
  • 举报
回复
谢谢分享,记得及时结帖。
啦啦啦灬 2019-09-18
  • 打赏
  • 举报
回复
如何写前端代码 @RequestMapping("user/upload/tuxiang") @ResponseBody public SysResult uploadTuXiang(String account,MultipartFile file,HttpServletRequest request){ try { //PicUploadResult /* * 判断用户是否为空 * 判断账号是否存在 * 判断文件是否图片 * 根据账号获取id * 存入图片路径地址到数据库 */ //PicUploadResult String path=request.getSession().getServletContext().getRealPath("/"); //构造一个返回的空对象 PicUploadResult result = new PicUploadResult(); if(account==null||account.equals("")){ return SysResult.build(201, "用户账号不能为空!"); }else if(!userService.flagAccount(account)){ return SysResult.build(202, "用户账号不存在!"); }else if(file==null||file.equals("")){ return SysResult.build(203, "图片不能为空"); } System.out.println("uploadFile:"+file); //判断后缀,获取原名称,1.jpg String oldFileName = file.getOriginalFilename(); //截取后缀 String extFileName = oldFileName .substring(oldFileName.lastIndexOf(".")); //正则判断合法性 if(extFileName.matches(".^(jpg|png|gif)$")){ return SysResult.build(204, "图片格式输入错误"); //result.setError(1); //return result; } try { //判断木马,BufferedImage判断是否有宽高 BufferedImage bi = ImageIO.read (file.getInputStream()); //getHeight没有抛异常说明数据流中有宽高的属性,不是木马 result.setHeight(bi.getHeight()+""); result.setWidth(bi.getWidth()+""); //以上内容为判断木马过程; //生成路径 images\2018\07\27 String dir = "/images/"+new SimpleDateFormat("yyyy-MM-dd"). format(new Date())+"/"; //拼接磁盘路径,拼接url路径 path=path+dir; String urlPath="http://localhost:8090"+dir; // String urlPath = contexPath+dir; //创建磁盘目录,等待输出文件 File _dir = new File(path); if(!_dir.exists()){ _dir.mkdirs();//tomcat下的webapp/ROOT/images/***/ } //计算文件重命名 String fileName = System.currentTimeMillis() +""+RandomUtils.nextInt(100,999)+extFileName; //result.setUrl(urlPath+fileName); //写出磁盘 file.transferTo(new File(path+fileName)); path=path+fileName; Date updated=new Date(); userService.uploadTuXiang(account,path,updated); //error为0 return SysResult.oK(path); } catch (Exception e) { result.setError(1); return SysResult.build(205, e.toString()); } } catch (Exception e) { return SysResult.build(205, e.toString()); } } /** * 获取用户头像在服务器中的路径地址 * @param account 用户账号 * @return String:头像在服务器中的路径地址 */ @RequestMapping("user/select/tuxiang") @ResponseBody public SysResult selectTuxiang(String account){ /* * 判断账号是否为空 * 判断账号是否存在 * 根据账号获取用户的图像路径地址 */ try { if(account==null||account.equals("")){ return SysResult.build(201, "账号不能为空"); }else if(!userService.flagAccount(account)){ return SysResult.build(202, "账号不存在"); }else { String path=userService.selectTuxiang(account); return SysResult.oK(path); } } catch (Exception e) { return SysResult.build(203, e.toString()); } }
内容概要:本文系统研究了基于CNN-SVM的卷积神经网络与支持向量机融合的数据分类预测方法,聚焦其在工业故障识别中的应用,提供了完整的Matlab代码实现。通过CNN提取输入数据的深层空间特征,再由SVM进行高精度分类,充分发挥两者优势,有效提升了故障识别的准确性、鲁棒性与泛化能力。该方法特别适用于处理电力系统、机械设备等领域的高维、非线性、强噪声监测数据,在变压器故障诊断、轴承缺陷识别等场景中具有重要应用价值。文档还整合了机器学习、深度学习、图像处理、路径规划、电力系统优化等多个前沿科研方向的技术资源,配套大量Matlab/Simulink仿真案例与Python代码,全面支持科研复现与工程实践。; 适合人群:具备一定编程基础,熟练掌握Matlab或Python语言,从事电气工程、自动化、人工智能、机械故障诊断等相关领域研究的研发人员及高校研究生; 使用场景及目标:① 实现工业设备的状态监测与多类别故障分类;② 深入理解CNN与SVM融合模型的设计原理与工程实现细节;③ 借助所提供的丰富算法案例开展科研复现、模型优化与系统仿真验证; 阅读建议:建议按照文档目录结构系统化学习,结合百度网盘提供的完整代码资源进行动手实践,重点关注CNN特征提取层与SVM分类器之间的数据接口设计与参数调优策略,同时可延伸学习文中涉及的其他智能算法及其在电力系统、信号处理等领域的交叉应用,全面提升科研创新能力。

52,780

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧