国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

使用ajax跨域調(diào)用springboot框架的api傳輸文件

瀏覽:200日期:2022-06-11 17:47:45

在新項(xiàng)目中使用的是springboot編寫的api,涉及到ajax跨域請(qǐng)求和傳輸文件的問(wèn)題,在這里記錄一下
首先是前臺(tái)頁(yè)面的代碼

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>test_api</title>
  <script type="text/javascript" src="jquery-1.7.2.js"></script>
  <script type="text/javascript">
   function test(){
    var obj = new Object;
    obj.name = $("#name").val();
    obj.age = $("#age").val();
    var file = document.getElementById("file").files[0];
    var formData = new FormData();
    formData.append("data",JSON.stringify(obj));
    formData.append("file",file);
    $.ajax({
     type:"post",
     url:"http://localhost:8187/test/upload",
     contentType:false,
     processData:false,
     data:formData,
     success:function(data){
       alert(data.msg);
     }
    });
   }
  </script>
 </head>
 <body>
  <div>
   <table>
    <tr>
     <td>sCompany:</td>
     <td><input type="text" id="name" value="tom" /></td>
    </tr>
    <tr>
     <td>scardtype:</td>
     <td><input type="text" id="age" value="23" /></td>
    </tr>
    <tr>
     <td>file:</td>
     <td><input type="file" id="file" /></td>
    </tr>
   </table>
   <input type="button" onclick="test();" value="提交" />
  </div>
 </body>
</html>

程序入口類的代碼

package test;

import javax.servlet.MultipartConfigElement;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/**
 * Hello world!
 *
 */

@SpringBootApplication
public class App 
{

  public static void main( String[] args )
  {
    SpringApplication.run(App.class, args);
  }
  //設(shè)置ajax跨域請(qǐng)求
  @Bean
  public WebMvcConfigurer corsConfigurer(){
    return new WebMvcConfigurerAdapter(){

      @Override
      public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("*");
      }
    };
  }

  @Bean
  public MultipartConfigElement multipartConfigElement(){
    MultipartConfigFactory factory = new MultipartConfigFactory();
    //設(shè)置上傳文件大小限制
    factory.setMaxFileSize("10MB");
    //設(shè)置上傳總數(shù)據(jù)大小
    factory.setMaxRequestSize("15MB");
    return factory.createMultipartConfig();
  }
}

api代碼

package test.controller;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import test.model.UploadInfo;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

@RestController
@RequestMapping("/test")
public class TestController {

  /**
   * 上傳文件
   * @param req form請(qǐng)求
   * @return json字符串
   */
  @RequestMapping(value="/upload", method=RequestMethod.POST)
  public String uploadFile(HttpServletRequest req){ 
    // 返回結(jié)果用 json對(duì)象
    JSONObject returnObj = new JSONObject();
    //從請(qǐng)求中獲取請(qǐng)求的json字符串
    String strData = req.getParameter("data");
    //將獲取到的JSON字符串轉(zhuǎn)換為Imgidx對(duì)象
    UploadInfo info = JSON.parseObject(strData, UploadInfo.class);
    //獲取上傳的文件集合
    List<MultipartFile> files = ((MultipartHttpServletRequest)req).getFiles("file");
    MultipartFile file = files.get(0);
    // 返回信息頭部
    Map<String, String> header = new HashMap<String, String>();
    header.put("code", "0");
    header.put("msg", "success");
    File file1234 = new File(file.getOriginalFilename());
    //插入數(shù)據(jù)的影響的數(shù)據(jù)條數(shù)
    int result = 0;
    //將文件上傳到save
    if(!file.isEmpty()){
      try{
byte[] arr = new byte[1024];
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file1234));
bos.write(arr);
bos.flush();
bos.close();
      }catch(Exception e){
header.put("code", "-1");
header.put("msg", "errorMsg:" + e.getMessage());
      }
    }else{
      header.put("code", "-1");
      header.put("msg", "errorMsg:上傳文件失敗,因?yàn)槲募强盏?);
    }
    String returnStr = returnObj.toJSONString(header);
    return returnStr;
  }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持。

標(biāo)簽: Ajax
相關(guān)文章:
主站蜘蛛池模板: 狠狠se| 国产tv在线| 日韩欧美a级高清毛片 | 亚洲国产天堂在线网址 | 色综合久久88一加勒比 | 国内精品美女写真视频 | 国产黄色一级毛片 | 手机看片精品国产福利盒子 | 在线播放亚洲精品 | a级毛片免费播放 | 成人观看视频又黄又免费 | mm在线视频免费看 | 国产成人综合亚洲 | 韩国精品一区二区三区在线观看 | 国产美女又黄又爽又色视频免费 | 免费一级毛片正在播放 | 她也啪在线视频 | 自拍偷自拍亚洲精品10p | 日本一区二区三区四区五区 | 亚洲欧美久久精品1区2区 | 欧美成人亚洲综合精品欧美激情 | 91精品国产91热久久p | 欧洲美女a视频一级毛片 | 中文字幕成人在线 | 久久99精品视免费看 | 美女张开双腿让男人桶 | 五月色一区二区亚洲小说 | 在线三级网址 | 亚洲 欧美 手机 在线观看 | 免费香蕉成视频成人网 | 亚洲理论片在线中文字幕 | 国产主播精品福利19禁vip | 中文字幕视频免费在线观看 | 国产欧美日韩中文久久 | 免费视频久久 | 欧美成人aaa大片 | 步兵精品手机在线观看 | 国产精品亚洲一区在线播放 | 日本韩国欧美在线观看 | 99免费在线播放99久久免费 | 中文字幕日韩有码 |