在使用ssm完成前后端对接时,总免不了前台传过来的文件问题,而html中的<input>框直接使用时,往往会获取不到路径,今天在完成图片上传后的来做个总结

首先,前台页面

 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>图片上传</title>
</head>
<body>
<h2>图片上传</h2>
<form action="save/saveImg" method="post" enctype="multipart/form-data">
图片:<input type="file" name="upload"/><br/>
<input type="submit" value="提交"/>
</form>
</body>
</html>

配置图片解析

 <!-- 配置文件上传视图解析器 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="10485760"></property>
<property name="defaultEncoding" value="utf-8"></property>
</bean>

其中 maxUploadSize 是限制上传的图片最大字节  defaultEncoding是设定上传图片编码

service接口

 package com.sp.service;

 import org.springframework.web.multipart.MultipartFile;

 public interface FileService {

     void upLoadFile(MultipartFile upload);
}

实现类

 package com.sp.serviceImpl;

 import java.io.File;
import java.io.IOException; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile; import com.sp.service.FileService; @Service
public class FileServiceImpl implements FileService { private String filePath="D:/img/"; //定义上传文件的存放位置
@Override
public void upLoadFile(MultipartFile upload) { String fileName = upload.getOriginalFilename(); //获取上传文件的名字
//判断文件夹是否存在,不存在则创建
File file=new File(filePath); if(!file.exists()){
file.mkdirs();
} String newFilePath=filePath+fileName; //新文件的路径 try {
upload.transferTo(new File(newFilePath)); //将传来的文件写入新建的文件 } catch (IllegalStateException | IOException e) {
e.printStackTrace();
} } }

控制层

 package com.sp.controller;

 import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile; import com.sp.service.FileService; @Controller
@RequestMapping("/save")
public class FileController { @Autowired
private FileService fileService; @RequestMapping("/saveImg")
@ResponseBody
public String saveImg(MultipartFile upload){
fileService.upLoadFile(upload);
return "ok";
}
}

效果演示

选择图片

提交后看我的d盘目录

本案例只是简单的演示,后台可以对上传的图片名称或者大小或者有无尺寸进行判断,从而可以避免传入无效数据,同时亦可以将自己所保存的路径进行相应的修改后存入数据库,便于以后数据的回显.

ssm实现图片上传的更多相关文章

  1. SSM实现图片上传管理操作

    Spring MVC 实现文件上传 时序图 利用 Spring MVC 实现文件上传功能,离不开对 MultipartResolver 的设置.MultipartResolver 这个类,你可以将其视 ...

  2. ssm使用Ajax的formData进行异步图片上传返回图片路径,并限制格式和大小

    之前整理过SSM的文件上传,这次直接用代码了. 前台页面和js //form表单 <form id= "uploadForm" enctype="multipart ...

  3. ssm框架实现图片上传显示并保存地址到数据库

    本案例是通过springmvc+spring+mybatis框架以商品上传为例,实现的图片上传功能,并把图片的地址保存到数据库并在前台显示上传的图片. 本项目是使用maven搭建的项目,首先看下项目结 ...

  4. 在SSM框架中如何将图片上传到数据库中

    今天我们来看看SSM中如何将图片转换成二进制,最后传入到自己的数据库中,好了,废话不多说,我们开始今天的学习,我这里用的编辑器是IDEA 1.导入图片上传需要的jar依赖包 1 <depende ...

  5. (SSM框架)实现小程序图片上传(配小程序源码)

    阅读本文约"2分钟" 又是一个开源小组件啦! 因为刚好做到这个小功能,所以就整理了一下,针对微信小程序的图片(文件)上传! 原业务是针对用户反馈的图片上传.(没错,本次还提供小程序 ...

  6. SSM(Spring+springMVC+MyBatis)框架-springMVC实现图片上传

    关于springMVC来实现图片上传的功能 话不多说,直接上码 1.applicationContext.xml <!-- 配置文件上传 --> <!--200*1024*1024即 ...

  7. ssm项目中KindEditor的图片上传插件,浏览器兼容性问题

    解决办法: 原因:使用@ResponseBody注解返回java对象,在浏览器中是Content-Type:application/json;charset=UTF-8 我们需要返回字符串(Strin ...

  8. 图片上传功能(EasyUI前台框架+SSM框架)

    文件上传步骤: * 1.采用文件正确的接收方式(修改3处配置文件/接口类型等) * 2.判断是否为一个图片,0表示无异常,1代表异常(jpg|gif|png) * 3.判断是不是一个“正经”的图片,判 ...

  9. html图片上传阅览并且点击放大

                  关闭   qq_31540195的博客       目录视图 摘要视图 订阅 异步赠书:9月重磅新书升级,本本经典           程序员9月书讯      每周荐书: ...

随机推荐

  1. docker(七) 使用dockerfile-maven-plugin插件构建docker镜像

    在dockerfile-maven-plugin插件出现之前,还有一个maven插件是docker-maven-plugin,是由同一个作者创造,作者明确表示推荐使用dockerfile-maven- ...

  2. python多线程和多进程

    1 概念梳理: 1.1 线程 1.1.1 什么是线程 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发 ...

  3. Timer类的常见使用方法

    System.Timers名称空间中的Timer类的构造函数只需要一个时间间隔,经过该时间间隔后应该调用的方法用Elapsed事件指定,这个事件需要一个ElapsedEventHandler类型的委托 ...

  4. 放弃幻想,全面拥抱Transformer:自然语言三大特征抽取器CNN/RNN/Transformer比较

    参考: https://zhuanlan.zhihu.com/p/54743941

  5. springboot整合redis(注解形式)

    springboot整合redis(注解形式) 准备工作 springboot通常整合redis,采用的是RedisTemplate的形式,除了这种形式以外,还有另外一种形式去整合,即采用spring ...

  6. luogu P1744 采购特价商品

    实话说我本来想找SPFA的题,结果我硬生生的把这道题做成了Floyd 先来看题,我们会发现如果把他所给的变量都输入,那么会发现用Floyd的解法,输入占了main函数的一半长度... 题目分为两步走: ...

  7. BZOJ4977[Lydsy1708月赛]跳伞求生——贪心+堆+模拟费用流

    题目链接: 跳伞求生 可以将题目转化成数轴上有$n$个人和$m$个房子,坐标分别为$a_{i}$和$b_{i}$,每个人可以进一个他左边的房子,每个房子只能进一个人.每个房子有一个收益$c_{i}$, ...

  8. Vivado2016旧工程IP移动到新工程

    前言 在VIVADO中图形化界面生成IP,在旧工程中使用后,如果想在新的工程中使用这个IP但又不想再次生成一次,则就需要把就旧工程中的IP导入到新工程中. 流程 1.旧工程IP生成的目录如下,IP为C ...

  9. <Android基础>(四) Fragment Part 1

    Fragment 1)Fragment的简单用法 2)动态添加Fragment 3)在Fragment中模拟返回栈 4)Fragment和活动之间通信 第四章 Fragment Fragment是一种 ...

  10. webpack学习记录-初步体验(一)

    一.关于webpack 自从出现模块化以后,大家可以将原本一坨代码分离到个个模块中,但是由此引发了一个问题.每个 JS 文件都需要从服务器去拿,由此会导致加载速度变慢.Webpack 最主要的目的就是 ...