SpringMVC上传文件后返回文件服务器地址路径

先写一个表单:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>文件上传</title>
</head>
<body>
    <h2>文件上传</h2>
    <form action="/fileUpload.jspx" enctype="multipart/form-data" method="post">
        <table>
            <tr>
                <td>文件描述:</td>
                <td><input type="text" name="description"></td>
            </tr>
            <tr>
                <td>请选择文件:</td>
                <td><input type="file" name="uploadFile"></td>
            </tr>
            <tr>
                <td><input type="submit" value="上传"></td>
            </tr>
        </table>
    </form>
</body>
</html>

action层接收文件处理:

/**
     * 资源文件上传,返回一个文件服务器地址
     * @author Libin
     * @date 2018年1月12日 上午10:28:08
     */
    @RequestMapping(value ="/fileUpload.jspx")
    public void uploadFileBackAddress(HttpServletRequest request, HttpServletResponse response) {
      try {
            MultipartFile multipartFile = null;
            if (request instanceof MultipartHttpServletRequest) {
                multipartFile = ((MultipartHttpServletRequest)request).getFile("uploadFile");
            }
            if (null != multipartFile) {
                /**
                 * 项目服务器地址路径
                 */
                String projectServerPath = request.getScheme() + "://"+request.getServerName()+":" +
                                request.getServerPort() + request.getContextPath() + "/upload/";
                /**
                 * 上传文件绝对路径
                 */
                String path = request.getSession().getServletContext().getRealPath("/WEB-INF/upload/");
                /**
                 * 上传文件名
                 */
                String fileName = makeFileName(multipartFile.getOriginalFilename());

                File file = new File(path + fileName);
                /**
                 * 判断路径是否存在,如果不存在就创建一个
                 */
                if (!file.getParentFile().exists()) { 

                    file.getParentFile().mkdirs();
                }
                /**
                 * 创建文件
                 */
                multipartFile.transferTo(new File(path + File.separator + fileName));
                /**
                 * 返回服务器文件地址
                 */
                String serverFilePatn = projectServerPath + fileName;

            }

        }  catch (Exception e) {
            ajaxBackData = this.getAjaxBackDataExceptionStatus(e);
        }

    }
  
springMVC配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jee="http://www.springframework.org/schema/jee"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
    http://www.springframework.org/schema/jee
    http://www.springframework.org/schema/jee/spring-jee-4.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-4.0.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc.xsd"
    default-lazy-init="true">
    <context:annotation-config />
    <bean id="multipartResolver"
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="utf-8"></property>
        <property name="maxUploadSize" value="10485760000"></property>
        <property name="maxInMemorySize" value="40960"></property>
    </bean>
    <mvc:annotation-driven></mvc:annotation-driven>
    <!-- 在web.xml配置detectAllViewResolvers为false不根据ViewResolver接口全扫描,只根据viewResolver标识查找DispatcherServlet的视图解析器 -->
    <bean id="defaultViewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass"
            value="org.springframework.web.servlet.view.JstlView" />
        <!-- 设置前缀,即视图所在的路径 -->
        <property name="prefix" value="/WEB-INF/jsp/" />
        <!-- 设置后缀,即视图的扩展名 -->
        <property name="suffix" value=".jsp" />
    </bean>

</beans>



参考文章:http://www.cnblogs.com/klslb/p/8286762.html

需要添加的jar包:commons-fileupload-1.2.1.jar    commons-io.2.5.jar

原文地址:https://www.cnblogs.com/klslb/p/8286746.html

时间: 2024-11-13 06:33:03

SpringMVC上传文件后返回文件服务器地址路径的相关文章

Juploader 1.0 谷歌(chrome)浏览器中成功上传文件后返回信息异常

在项目中使用了Juploader 1.0无刷新上传文件的js组件,在IE8以上没有问题,代码如下: function InitialUploadDirectly(OnUploadFunc, buttonID, allowedExts) { $.jUploader({ button: buttonID, // 这里设置按钮id eventType: 1, //触发类型 addeventbutton: buttonID, // 要绑定事件的元素的id filenamed: buttonID + 'd

SpringMVC上传文件的三种解析方式

springMVC上传文件后,在action解析file文件的三种方式. jsp页面的写法: <form action="parserUploadFile1" method="post" enctype="multipart/form-data"> <input type="file" name="file" /> <input type="submit"

springmvc上传文件,抄别人的

SpringMVC中的文件上传 分类: SpringMVC 2012-05-17 12:55 26426人阅读 评论(13) 收藏 举报 stringuserinputclassencoding 这是用的是SpringMVC-3.1.1.commons-fileupload-1.2.2和io-2.0.1 首先是web.xml [html] view plaincopyprint? <?xml version="1.0" encoding="UTF-8"?>

SpringMVC上传文件(图片)并保存到本地

SpringMVC上传文件(图片)并保存到本地 小记一波~ 基本的MVC配置就不展示了,这里给出核心代码 在spring-mvc的配置文件中写入如下配置 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize">

2. SpringMVC 上传文件操作

1.创建java web项目:SpringMVCUploadDownFile 2.在项目的WebRoot下的WEB-INF的lib包下添加如下jar文件 1 com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar 2 com.springsource.net.sf.cglib-2.2.0.jar 3 com.springsource.org.aopalliance-1.0.0.jar 4 com.springsource.org.apache.commo

springmvc 上传文件时的错误

使用springmvc上传文件一直失败,文件参数一直为null, 原来是配置文件没写成功. <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 最大上传尺寸 B单位 1M= 1024*1024 --> <property name="maxUploadSize&

SpringMVC上传文件总结

如果是maven项目 需要在pom.xml文件里面引入下面两个jar包 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>com

springmvc 上传文件的问题

今天用springmvc 上传文件的时候 报错 org.apache.catalina.connector.RequestFacade cannot be cast to org.springframework.web.multipart.MultipartHttpServletRequest 网上查找原因 说的有如下几种: 1.表单form 上没有 enctype="multipart/form-data"   这个属性 2.配置文件: <bean id="multi

ajax提交formData iframe springmvc 上传文件 页面是通过iframe嵌入的html

1.引入讲个jar包 springmvc设置 commons-fileupload-1.3.3.jar commons-io-2.5.jar <!-- 定义文件解释器 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 设置默认编码 --> <prop