SpringMvc+ibaits 文件上传的列子
博客专区 > wsl_Mr 的博客 > 博客详情
SpringMvc+ibaits 文件上传的列子
wsl_Mr 发表于5年前
SpringMvc+ibaits 文件上传的列子
  • 发表于 5年前
  • 阅读 373
  • 收藏 1
  • 点赞 0
  • 评论 3

1.web.xml 配置


<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<!-- 配置加载spring数据源信息 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>
<!-- 配置spring监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- 配置定时器监听器 -->
<listener>
        <listener-class>com.lenovo.init.AccountListener</listener-class>
  </listener>


<!-- 设置请求字符编码过滤器 -->
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


<!-- 配置springMvc中央控制器 -->
<servlet>
<servlet-name>applicationContext</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>


</servlet>
<!-- 截取*.do所有请求,进行请求转向,业务分发 -->
<servlet-mapping>
<servlet-name>applicationContext</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

   <!--配置webservice.以services/结尾 -->
<servlet>
<servlet-name>CXFService</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CXFService</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>

<!-- 设置默认首页未index.jsp -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

</web-app>

2.applicationContext.xml(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:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    http://www.springframework.org/schema/mvc    
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
    http://www.springframework.org/schema/context  
    http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"
default-autowire="byName">




<context:annotation-config />
<context:component-scan base-package="com.lenovo" />  <!-- 自动扫描所有注解该路径 -->
<!-- 配置事务管理器 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>


<!-- 配置sqlMapClientFactory -->
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="classpath:config/sqlMapConfig.xml" />
<property name="dataSource" ref="dataSource" />
</bean>


<!-- 配置声明式事务 拦截器 -->
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="transactionManager"></property>
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="create*">PROPAGATION_REQUIRED</prop>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>




<!--aop 管理*.service管理 -->
<bean
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="proxyTargetClass" value="true"></property>
<property name="beanNames">
<value>*Service</value>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>


<!-- 配置parnetDao -->
<bean id="parentDao" class="com.lenovo.dao.impl.ParentDaoImpl">
<property name="sqlMapClient" ref="sqlMapClient"></property>
</bean>


<!-- 配置parentService -->
<bean id="parentService" class="com.lenovo.service.impl.ParentServiceImpl">
<property name="parentDao" ref="parentDao"></property>
</bean>




</beans>

applicationContext-dataSource.xml(配置数据源)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" 
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>

<!-- 
<property name="url">
<value>jdbc:mysql://172.17.116.21:3306/lezhuomian?useUnicode=true&amp;continueBatchOnError=true&amp;characterEncoding=utf-8</value>
</property>
-->

<property name="url">
<value>jdbc:mysql://172.16.227.227:3306/lezhuomian?useUnicode=true&amp;continueBatchOnError=true&amp;characterEncoding=utf-8</value>
</property>
 
<property name="username">
<value>root</value>
</property>
<property name="password">
<value></value>
</property>
<property name="removeAbandoned">
<value>true</value>
</property>
<property name="defaultAutoCommit">
<value>true</value>
</property>
<property name="removeAbandonedTimeout">
<value>60</value>
</property>
<property name="validationQuery">
<value>SELECT 1</value>
</property>
<property name="logAbandoned">
<value>true</value>
</property>
<property name="testWhileIdle">
<value>true</value>
</property>
<property name="timeBetweenEvictionRunsMillis">
<value>10000</value>
</property>
<property name="minEvictableIdleTimeMillis">
<value>6000</value>
</property>
<property name="testOnBorrow">
<value>true</value>
</property>
<property name="maxActive">
<value>150</value>
</property>
<property name="maxIdle">
<value>30</value>
</property>
<property name="minIdle">
<value>10</value>
</property>
<property name="initialSize">
<value>10</value>
</property>
</bean>


</beans>

applicationContext-servlet.xml

 

<?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:p="http://www.springframework.org/schema/p"
 xmlns:context="http://www.springframework.org/schema/context"
 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd  
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd  
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

 <context:annotation-config />
 <!-- 把标记了@Controller注解的类转换为bean -->
 <context:component-scan base-package="com.lenovo.servlet" />
 <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
 <!--  <bean
  class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />-->

 <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->
 <bean id="viewResolver"
  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="prefix" value="/" />
  <property name="suffix" value=".jsp"></property>
 </bean>
 
 <!-- spring的异常处理,提供对用户比较友好的错误界面,可以指定不同的异常类型 -->
 <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
  <property name="exceptionMappings">
   <props>
    <prop key="java.lang.Exception">
     errors/exception
    </prop>
   </props>
  </property>
  
 </bean>
  
   <!-- 设置响应字符编码 -->
 <bean id="multipartResolver"
  class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
  p:defaultEncoding="utf-8" />
</beans>

 


 3.业务模型Controller

@Controller
@RequestMapping("file.do")
public class FileUploadController {

      


 public FileUploadController() {
  logger.info("fileUpload init-----");
 }

 private ParentService parentService;

 @Autowired
 public void setParentService(ParentService parentService) {
  // logger.info("parentService==="+parentService);
  this.parentService = parentService;

 }

 

 

@RequestMapping(method = RequestMethod.POST, params = "method=upload1")
 public String csfileUpload(HttpServletRequest request, ModelMap model) {

  MultipartHttpServletRequest muiltRequest = (MultipartHttpServletRequest) request;
  String ztMc = request.getParameter("wjmc");
  String wjMs = request.getParameter("wjms");
  String filePath = "zt" + "/" + ztMc; //
  String fileRealPath = request.getSession().getServletContext()
    .getRealPath(filePath); // 服务器磁盘的地址
  logger.info(fileRealPath);
  File file = new File(fileRealPath);
  if (!file.exists())
   file.mkdirs();
  MultipartFile multipartFile = muiltRequest.getFile("dc_file"); // 获得文件
  String fileName = multipartFile.getOriginalFilename();
  String path = fileRealPath + File.separator + fileName;
  File fl = new File(path);

  try {
   multipartFile.transferTo(fl);
   FileToZip zip = new FileToZip();
   zip.makeFile_Zip(fileRealPath + ".zip", path);  //压缩文件
   ZtWjSc ztwj = new ZtWjSc();

   parentService.insert("insertZtWjScs", ztwj); 插入数据库
  } catch (IllegalStateException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
  return wjListAll(request, model);

 }

}

 

public class ParentDaoImpl extends SqlMapClientDaoSupport implements ParentDao {

 public void insert(String poName, Object obj) {
  getSqlMapClientTemplate().insert(poName, obj);
  System.out.println(poName + ".table,添加数据------>>");

 }

}

 

 

页面

<form id="signupForm" name="signupForm" method="post"
     action="<%=request.getContextPath()%>/file.do"
     enctype="multipart/form-data" >
      <input type="hidden" name="method" value="upload1" />
<span>主题中文名称:</span><input name="chname" type="text" size="20" id="reschname" class="resname"   />
<div id="error1" class="error1"><font color="red">中文名必填</font></div>
<div id="error11" class="error11"><font color="red">(1-5)个字符</font></div>
<br />
<span>主题英文名称:</span><input name="engname" type="text" size="20" id="resenname" class="resname"  />
<div id="error2" class="error2"><font color="red">英文名必填</font></div>
<div id="error12" class="error12"><font color="red">(1-5)个字符</font></div>
<br />
<span>版本号:</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name="vername" type="text" size="20" id="resvername"  class="resvername" />
<div id="error3" class="error3"><font color="red">版本号必填</font></div>
<div id="error13" class="error13"><font color="red">(1-8)个字符</font></div>
<br />
<span>资源包:</span>&nbsp;&nbsp;<input name="file" type="file" id="fileup" size="20" value="请上传需要打包的文件"  />
<div id="error4" class="error4"><font color="red">请上传需要打包的文件</font></div>
<div id="error5" class="error5"><font color="red">上传文件类型:zip,rar</font></div>
<br />
<span>打包进度:</span>

</form>

 

 

 

共有 人打赏支持
粉丝 8
博文 55
码字总数 26504
评论 (3)
吕栋
上传个demo看看!
火龙战士
来个例子看看吧
itxx2016
推荐国内最流行的ibatis、mybatis代码生成网站 --- fwjava.com
无需任何安装配置,直接在线生成,且十分规范好用.
现在,很多知名的互联网公司都在用它.
×
wsl_Mr
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: