溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用SpringMVC和Ajax實現(xiàn)文件上傳功能

發(fā)布時間:2020-09-02 15:39:06 來源:腳本之家 閱讀:154 作者:chengziaa123 欄目:編程語言

個人根據(jù)相關資料實現(xiàn)利用SpringMVC和Ajax實現(xiàn)文件上傳功能:

環(huán)境:

1.JDK1.7

2.maven3.3.9

3.Tomcat7

第一步:

導入相關jar包:

利用SpringMVC和Ajax實現(xiàn)文件上傳功能

第二步:

配置springmvc-config.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.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd">
 
 <context:component-scan base-package="com.lc" />
 
 <!-- 配置視圖解析器 -->
 <bean id="viewResolver"
 class="org.springframework.web.servlet.view.InternalResourceViewResolver">
 <property name="prefix" value="/WEB-INF/page/"></property>
 <property name="suffix" value=".jsp"></property>
 </bean>
 
 
 <bean id="multipartResolver"
 class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
 <!--上傳文件的最大大小 -->
 <property name="maxUploadSize" value="17367648787"></property>
 <!-- 上傳文件的編碼 -->
 <property name="defaultEncoding" value="UTF-8"></property>
 </bean>
 
</beans>

第三步:

配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
 id="WebApp_ID" version="3.1">
 <display-name>fileupload</display-name>
 <welcome-file-list>
 <welcome-file>index.html</welcome-file>
 <welcome-file>index.htm</welcome-file>
 <welcome-file>index.jsp</welcome-file>
 <welcome-file>default.html</welcome-file>
 <welcome-file>default.htm</welcome-file>
 <welcome-file>default.jsp</welcome-file>
 </welcome-file-list>
 <!--Springmvc的控制分發(fā)器 -->
 <servlet>
 <servlet-name>springDispatcherServlet</servlet-name>
 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 <init-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:springmvc-config.xml</param-value>
 </init-param>
 <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
 <servlet-name>springDispatcherServlet</servlet-name>
 <url-pattern>/</url-pattern>
 </servlet-mapping>
 
 
</web-app>

第四步:

新建一個Controller類,并實現(xiàn)文件上傳的功能

import java.io.File;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
 
import javax.json.Json;
import javax.servlet.http.HttpServletRequest;
 
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.alibaba.fastjson.JSON;
import com.fasterxml.jackson.databind.util.JSONPObject;
 
@Controller
public class FileUploadController {
 
 @RequestMapping(value = "index", method = RequestMethod.GET)
 public String index() {
 return "index";
 }
 
 @RequestMapping(value = "/upload", method = RequestMethod.POST)
 @ResponseBody
 public String upload(@RequestParam("file") MultipartFile file,
  HttpServletRequest request) {
 Map<String, String> modelMap = new HashMap<>();
 if (!file.isEmpty()) {
  String storePath = "E://images";
  Random r = new Random();
  String fileName = file.getOriginalFilename();
  String[] split = fileName.split(".jpg");
  fileName = split[0] + r.nextInt(1000);
  fileName = fileName + ".jpg";
  File filePath = new File(storePath, fileName);
  if (!filePath.getParentFile().exists()) {
  filePath.getParentFile().mkdirs();// 如果目錄不存在,則創(chuàng)建目錄
  }
  try {
  file.transferTo(new File(storePath + File.separator + fileName));// 把文件寫入目標文件地址
  } catch (Exception e) {
  e.printStackTrace();
  modelMap.put("back", "error");
  String json = JSON.toJSONString(modelMap);
  return json;
  }
  modelMap.put("back", "success");
 
 } else {
  modelMap.put("back", "error");
 }
 String json = JSON.toJSONString(modelMap);
 return json;
 
 }
 
}

第五步: 

在WEB-INF下,新建一個pages文件夾,并創(chuàng)建實現(xiàn)文件上傳的jsp或者HTML文件(我使用的是jsp):

利用SpringMVC和Ajax實現(xiàn)文件上傳功能

在index.jsp下寫入相關的ajax的方法,在使用ajax之前必須先導入js庫。

<body>
 <form id="uploadForm" enctype="multipart/form-data" method="post">
 <input type="file" name="file">
 </form>
 <br>
 <input type="button" id="upload" value="上傳">
</body>
<script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
 $(function() {
 $('#upload').click(function() {
  var formData = new FormData($('#uploadForm')[0]);
  $.ajax({
  type : 'POST',
  url : 'upload',
  data : formData,
  cache : false,
  processData : false,
  contentType : false,
 
  }).success(function(data) {
  var result = JSON.parse(data);
  alert(result.back);
  }).error(function() {
  alert("上傳失敗");
 
  });
 });
 });
</script>

第六步:

進行測試

利用SpringMVC和Ajax實現(xiàn)文件上傳功能

上傳文件

利用SpringMVC和Ajax實現(xiàn)文件上傳功能

上傳成功

利用SpringMVC和Ajax實現(xiàn)文件上傳功能

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

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI