乱码乱a∨中文字幕,在线免费激情视频,亚洲欧美久久夜夜潮,国产在线网址

  1. <sub id="hjl7n"></sub>

    1. <sub id="hjl7n"></sub>

      <legend id="hjl7n"></legend>

      當(dāng)前位置:首頁 >  站長 >  編程技術(shù) >  正文

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

       2020-11-25 14:38  來源: 腳本之家   我來投稿 撤稿糾錯

        阿里云優(yōu)惠券 先領(lǐng)券再下單

      這篇文章主要介紹了使用ajax跨域調(diào)用springboot框架的api傳輸文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

      在新項目中使用的是springboot編寫的api,涉及到ajax跨域請求和傳輸文件的問題,在這里記錄一下

      首先是前臺頁面的代碼

      <!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 class="">
         <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跨域請求
        @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請求
         * @return json字符串
         */
        @RequestMapping(value="/upload", method=RequestMethod.POST)
        public String uploadFile(HttpServletRequest req){
          // 返回結(jié)果用 json對象
          JSONObject returnObj = new JSONObject();
          //從請求中獲取請求的json字符串
          String strData = req.getParameter("data");
          //將獲取到的JSON字符串轉(zhuǎn)換為Imgidx對象
          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:上傳文件失敗,因為文件是空的");
          }
          String returnStr = returnObj.toJSONString(header);
          return returnStr;
        }
      }

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

      來源:腳本之家

      鏈接:https://www.jb51.net/article/177174.htm

      申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!

      相關(guān)標(biāo)簽
      ajax
      設(shè)計api

      相關(guān)文章

      • Ajax實現(xiàn)頁面無刷新留言效果

        這篇文章主要為大家詳細(xì)介紹了Ajax實現(xiàn)頁面無刷新留言效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

        標(biāo)簽:
        ajax
      • AJAX檢測用戶名是否存在的方法

        這篇文章主要為大家詳細(xì)介紹了AJAX檢測用戶名是否存在,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

        標(biāo)簽:
        ajax
      • 使用AJAX 包含正則表達式 驗證用戶登錄的步驟

        這篇文章主要介紹了使用AJAX(包含正則表達式)驗證用戶登錄的步驟,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下

        標(biāo)簽:
        ajax
      • ajax使用formdata上傳文件流

        這篇文章主要為大家詳細(xì)介紹了ajax使用formdata上傳文件流,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

        標(biāo)簽:
        ajax
      • Spring MVC+ajax進行信息驗證的方法

        AJAX不是新的編程語言,而是一種使用現(xiàn)有標(biāo)準(zhǔn)的新方法。這篇文章主要介紹了SpringMVC+ajax進行信息驗證,需要的朋友可以參考下

        標(biāo)簽:
        ajax

      熱門排行

      信息推薦