欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springmvc利用jquery.form插件異步上傳文件示例

 更新時間:2017年01月25日 09:35:56   作者:paincupid  
本篇文章主要介紹了springmvc利用jquery.form插件異步上傳文件示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。

需要的下載文件:

jQuery.form.js

jquery.js

commons-fileupload.jar

commons-io.jar

示例圖片

pom.xml

<!-- 文件上傳 --> 
  <dependency> 
   <groupId>commons-fileupload</groupId> 
   <artifactId>commons-fileupload</artifactId> 
   <version>1.3</version> 
  </dependency> 
  <dependency> 
   <groupId>commons-io</groupId> 
   <artifactId>commons-io</artifactId> 
   <version>2.4</version> 
  </dependency> 

web.xml 解決上傳后中文文件名亂碼問題

<!-- 解決提交時中文亂碼問題 start --> 
 <filter> 
   <filter-name>Set Character Encoding</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> 
 </filter> 
 <filter-mapping> 
  <filter-name>Set Character Encoding</filter-name> 
  <url-pattern>/*</url-pattern> 
 </filter-mapping> 
 <!-- 解決提交時中文亂碼問題 end --> 

servlet-context.xml中添加對上傳的支持

<!-- 支持文件上傳 --> 
 <beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
 </beans:bean> 

jsp文件

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<% 
 String path = request.getContextPath(); 
 String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path; 
%> 
<html lang="us"> 
<head> 
 <meta charset="utf-8"> 
 <title>springmvc上傳文件</title> 
 <link type="text/css" href="<%=basePath%>/resources/css/jquery-ui/jquery-ui.css" rel="stylesheet" /> 
 <link href="<%=basePath%>/resources/themes/bower_components/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet"> 
</head> 
<body> 
 <h2>springmvc上傳文件</h2> 
 <br/> 
 
 
<br/> 
 <div class="alert alert-success" id="formSucc"></div> 
 <br/> 
   
 <form role="form" id="uploadForm" name="uploadForm" enctype="multipart/form-data"> 
  <div class="form-group"> 
    <label>項目名稱</label> 
  </div> 
  <div class="form-group"> 
    <label> 
    <input class="form-control" maxlength="30" id="projectName" name="projectName"> 
    </label> 
  </div> 
  <div class="form-group"> 
    <label>File input</label> 
    <input type="file" name="file"> 
   </div> 
   
  <button class="btn" type="button" id="doSave">提交</button> 
   
 </form> 
 <div></div> 
</body> 
</html> 
 
 
<script type="text/javascript" src="<%=basePath%>/resources/js/jquery/jquery-1.11.3.min.js"></script> 
<script type="text/javascript" src="<%=basePath%>/resources/js/jquery-ui/jquery-ui.js"></script> 
<script type="text/javascript" src="<%=basePath%>/resources/js/jqueryForm/jquery.form.js"></script> 
<script> 
 
$(function(){ 
 $("#formSucc").hide(); 
  
 $("#doSave").click(function(){ 
  var requestUrl = "<%=basePath%>/widget/saveFile.json"; 
  var projectName = $("#projectName").val(); 
  $("#uploadForm").ajaxSubmit({ 
    type: 'post', 
    url: requestUrl, 
    //data: {projectName: projectName}, //應該把這個去掉,要不然,值會有重復,因為form提交時已經(jīng)做了一次提交了。 
                 //如果projectName的值為"tt",如果這個地方不去掉,那么提交接收的值變成"tt,tt"了。 
    contentType: "application/x-www-form-urlencoded; charset=utf-8", 
    success: function(data) { 
    if(data.success){ 
     $(".infoTips").remove(); 
     $("#formSucc").show(); 
     $("#formSucc").append("<label class='infoTips'>"+data.message+"</label>"); 
    } 
    } 
  }); 
 }); 
  
}); 
 
 
 
</script> 

Java的controller文件

package com.paincupid.springmvc.widget.controller; 
 
import java.io.IOException; 
import java.io.InputStream; 
import java.util.List; 
 
import javax.annotation.Resource; 
import javax.servlet.http.HttpServletRequest; 
 
import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import org.springframework.web.bind.annotation.RequestParam; 
import org.springframework.web.bind.annotation.ResponseBody; 
import org.springframework.web.multipart.MultipartFile; 
 
import com.paincupid.springmvc.finance.domain.Finance; 
import com.paincupid.springmvc.test.domain.Person; 
import com.paincupid.springmvc.util.BaseJsonRst; 
import com.paincupid.springmvc.util.CreatMockData; 
 
/** 
 * 
 * @author arthur.paincupid.lee 
 * @since 2016.01.24 
 * 
 */ 
@Controller 
@RequestMapping("/widget") 
public class widgetController { 
 private static final Logger log = LoggerFactory.getLogger(widgetController.class); 
  
 /** 
  * 上傳文件 
  * 在前臺的訪問路徑為: http://localhost:8080/springmvc/widget/uploadFile/view 
  * @return 
  */ 
 @RequestMapping("/uploadFile/view") 
 public String uploadFile() { 
  return "widget/uploadFile"; 
 } 
  
 @ResponseBody 
 @RequestMapping(value="/saveFile", method=RequestMethod.POST) 
 public BaseJsonRst saveFile(@RequestParam MultipartFile file, 
   @RequestParam String projectName) { 
  BaseJsonRst view = new BaseJsonRst(); 
  String orgiginalFileName = ""; 
  try { 
   String fileName = file.getName(); 
   InputStream inputStream = file.getInputStream(); 
   String content = file.getContentType(); 
   orgiginalFileName = file.getOriginalFilename(); 
   log.info("fileName: "+fileName+", inputStream: "+ inputStream 
      +"\r\n content: "+content+", orgiginalFileName: ="+ orgiginalFileName 
      +"\r\n projectName: "+ projectName);  
  } catch (IOException e) { 
   e.printStackTrace(); 
  } 
  view.setSuccess(true); 
  view.setMessage("上傳: "+orgiginalFileName+" 文件成功!"); 
  return view; 
 } 
 
  
} 

下載源碼地址:http://xiazai.jb51.net/201701/yuanma/springmvc_jb51.rar

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Fluent Mybatis實際開發(fā)中的優(yōu)勢對比

    Fluent Mybatis實際開發(fā)中的優(yōu)勢對比

    本文給大家介紹如何通過IQuery和IUpdate定義強大的動態(tài)SQL語句,給大家分享Fluent Mybatis實際開發(fā)中的優(yōu)勢講解,感興趣的朋友一起看看吧
    2021-08-08
  • spring-boot-thin-launcher插件分離jar包的依賴和配置方式

    spring-boot-thin-launcher插件分離jar包的依賴和配置方式

    這篇文章主要介紹了spring-boot-thin-launcher插件分離jar包的依賴和配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • SpringCloud使用Ribbon實現(xiàn)負載均衡的流程步驟

    SpringCloud使用Ribbon實現(xiàn)負載均衡的流程步驟

    在微服務(wù)架構(gòu)中,負載均衡是一項關(guān)鍵的技術(shù),它可以確保各個服務(wù)節(jié)點間的負載分布均勻,提高整個系統(tǒng)的穩(wěn)定性和性能,Spring Cloud 中的 Ribbon 就是一種負載均衡的解決方案,本文將深入探討 Ribbon 的原理和在微服務(wù)中的應用,需要的朋友可以參考下
    2024-02-02
  • Java輕松實現(xiàn)權(quán)限認證管理的示例代碼

    Java輕松實現(xiàn)權(quán)限認證管理的示例代碼

    我們在實際開發(fā)中經(jīng)常會進行權(quán)限認證管理,給不同的人加上對應的角色和權(quán)限,本文將實現(xiàn)一個簡易的權(quán)限驗證管理系統(tǒng),感興趣的小伙伴可以了解下
    2023-12-12
  • Java中關(guān)于Map四種取值方式

    Java中關(guān)于Map四種取值方式

    這篇文章主要介紹了Java中關(guān)于Map四種取值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Springboot動態(tài)配置AOP切點詳解

    Springboot動態(tài)配置AOP切點詳解

    這篇文章主要介紹了Springboot動態(tài)配置AOP切點詳解,Springboot 可以定義注解切點去攔截注解修飾的類方法以及execution(xxxx)切點去攔截具體的類方法,默認情況下我們都會使用注解@PointCut去定義切點,然后定義切面攔截切點,需要的朋友可以參考下
    2023-09-09
  • Java中使用注解的實例詳解

    Java中使用注解的實例詳解

    注解(Annotation)是放在Java源碼的類、方法、字段、參數(shù)前的一種特殊“注釋”,這篇文章主要介紹了Java中如何使用注解,需要的朋友可以參考下
    2023-06-06
  • J2ME 程序開發(fā)注意要點

    J2ME 程序開發(fā)注意要點

    講Java基礎(chǔ)的書籍中都是以J2SE來講基礎(chǔ),這就給學習造成了一些不必要的麻煩,下面將J2ME中用到的和不需要的Java基礎(chǔ)知識做一個簡單的說明
    2016-07-07
  • MyBatis中特殊符號的轉(zhuǎn)義

    MyBatis中特殊符號的轉(zhuǎn)義

    編寫SQL中會用到<,>,,>= 等,但是在mybatis中不可以這么寫,與xml文件的元素沖突,所以需要轉(zhuǎn)義,本文主要介紹了MyBatis中特殊符號的轉(zhuǎn)義,主要介紹了兩種轉(zhuǎn)義方式,感興趣的可以了解一下
    2024-01-01
  • JVM分配和回收堆外內(nèi)存的方式與注意點

    JVM分配和回收堆外內(nèi)存的方式與注意點

    JVM啟動時分配的內(nèi)存稱為堆內(nèi)存,與之相對的,在代碼中還可以使用堆外內(nèi)存,比如Netty,廣泛使用了堆外內(nèi)存,下面這篇文章主要給大家介紹了關(guān)于JVM分配和回收堆外內(nèi)存的方式與注意點,需要的朋友可以參考下
    2022-07-07

最新評論