
(1)在spring mvc的配置文件中配置:
<bean id="multipartResolver" class="orgspringframeworkwebmultipartcommonsCommonsMultipartResolver"><property name="uploadTempDir" value="/tmp" /> <!-- 临时目录 -->
<property name="maxUploadSize" value="10485760"/> <!-- 10M -->
</bean>
(2)文件上传表单和结果展示页fileuploadjsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@taglib prefix="mvc" uri=";
(3)后台处理UploadControllerjava:
package cnzifangskycontroller;import javaioFile;
import javaioIOException;
import javaxservlet>}
在上面的upload方法中,为了接收上传的文件,因此使用了一个MultipartFile类型的变量来接收上传的临时文件,同时为了给文件进行重命名,我调用了一个renameFileName方法,这个方法的具体内容如下:
/文件重命名
/
public static String renameFileName(String fileName) {
String formatDate = new SimpleDateFormat("yyMMddHHmmss")format(new Date()); // 当前时间字符串
int random = new Random()nextInt(10000);
String extension = fileNamesubstring(fileNamelastIndexOf("")); // 文件后缀
return formatDate + random + extension;
}
注:上面用到的model——Userjava:
package cnzifangskymodel;public class User {
private String userName; // 用户名
private String logoSrc; // 头像地址
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
thisuserName = userName;
}
public String getLogoSrc() {
return logoSrc;
}
public void setLogoSrc(String logoSrc) {
thislogoSrc = logoSrc;
}
}
至此全部结束
效果如下:
(PS:纯手打,望采纳)
@RequestMapping(value="getFile")
public ModelAndView getFile(@RequestParam(required = false) MultipartFile nativeUrl) {
Systemoutprintln("文件长度: " + nativeUrlgetSize());
Systemoutprintln("文件类型: " + nativeUrlgetContentType());
Systemoutprintln("文件名称: " + nativeUrlgetName());
Systemoutprintln("文件原名: " + nativeUrlgetOriginalFilename());
Systemoutprintln("========================================");
//如果用的是Tomcat服务器,则文件会上传到\\%TOMCAT_HOME%\\webapps\\YourWebProject\\WEB-INF\\upload\\文件夹中
String realPath = requestgetSession()getServletContext()getRealPath("/WEB-INF/upload");
//这里不必处理IO流关闭的问题,因为FileUtilscopyInputStreamToFile()方法内部会自动把用到的IO流关掉,我是看它的源码才知道的
FileUtilscopyInputStreamToFile(nativeUrlgetInputStream(), new File(realPath, nativeUrlgetOriginalFilename()));
}
<!-- 对静态资源文件的访问,方案一 将无法mapping到Controller的path交给default servlet handler处理
<mvc:default-servlet-handler/> -->
<!-- 对静态资源文件的访问 方案二 -->
<mvc:resources mapping="/images/" location="/WEB-INF/views/front/images/" />
<mvc:resources mapping="/css/" location="/WEB-INF/views/front/css/" />
<mvc:resources mapping="/js/" location="/js/" />
<mvc:resources mapping="/upload/" location="/upload/" />
<mvc:resources mapping="/frame/" location="/frame/" />
<mvc:resources mapping="/slidebox/" location="/WEB-INF/views/front/slidebox/" />
如上图所示,controller类里面在每个处理请求的方法头部都加上了一个@RequestMapping(value = "")注解,这个注解专门用来匹配页面的访问路径。
当SpringMVC框架检测到你在浏览器中输入的地址时
首先会去判断你要访问的资源名称是不是属于静态资源(具有相同名称的或页面),如果找到静态资源,就直接访问这些资源。
如果没找到再去webxml中去检索有没有对应的映射配置,如果有就按照这些映射访问资源。
如果依旧没有找到,这时再根据访问路径去相应的controller类中匹配@RequestMapping(value = "")注解中配置的映射,如果匹配上了就执行对应注解绑定的处理方法,反之则报错提示找不到资源(404错误)。
请教springmvc 路径问题~如果你认可我的回答,请及时点击采纳为满意回答按钮 ~~手机提问的朋友在客户端右上角评价点满意即可。 ~你的采纳是我前进的动力 ~~O(∩_∩)O,记得好评和采纳,互相帮助,谢谢。
以上就是关于如何在spring mvc中上传图片并显示出来全部的内容,包括:如何在spring mvc中上传图片并显示出来、我用from表单提交一个file怎么在后台获取这个file的绝对路径(框架式Spring+SpringMVC)、关于springMVC中静态文件路径问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)