在新项目中使用的是springboot编写的api,涉及到ajax跨域请求和传输文件的问题,在这里记录一下
首先是前台页面的代码
test_api
| sCompany: | |
| scardtype: | |
| file: |
程序入口类的代码
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;
@SpringBootApplication
public class App
{
public static void main( String[] args )
{
SpringApplication.run(App.class, args);
}
//设置ajax跨域请求
@Bean
public WebMvcConfigurer corsConfigurer(){
return new WebMvcConfigurerAdapter(){
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("
@RequestMapping(value="/upload", method=RequestMethod.POST)
public String uploadFile(HttpServletRequest req){
// 返回结果用 json对象
JSonObject returnObj = new JSonObject();
//从请求中获取请求的json字符串
String strData = req.getParameter("data");
//将获取到的JSON字符串转换为Imgidx对象
UploadInfo info = JSON.parseObject(strData, UploadInfo.class);
//获取上传的文件集合
List files = ((MultipartHttpServletRequest)req).getFiles("file");
MultipartFile file = files.get(0);
// 返回信息头部
Map header = new HashMap();
header.put("code", "0");
header.put("msg", "success");
File file1234 = new File(file.getOriginalFilename());
//插入数据的影响的数据条数
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;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。



