• 若依前端ajax连接后端多文件上传接口,并传值


    ajax连后端方法:data里面是前端像后端传的参数

     

    后端代码:

    1. @Controller
    2. @RequestMapping("/common")
    3. /**
    4. * 通用上传请求(多个)
    5. */
    6. @PostMapping("/uploads")
    7. @ResponseBody
    8. public AjaxResult uploadFiles(List files) throws Exception
    9. {
    10. int i=0;
    11. System.out.println("jll");
    12. try
    13. {
    14. // 上传文件路径
    15. String filePath = RuoYiConfig.getUploadPath();
    16. List urls = new ArrayList();
    17. List fileNames = new ArrayList();
    18. List newFileNames = new ArrayList();
    19. List originalFilenames = new ArrayList();
    20. for (MultipartFile file : files)
    21. {
    22. // 上传并返回新文件名称
    23. String fileName = FileUploadUtils.upload(filePath, file);
    24. String url = serverConfig.getUrl() + fileName;
    25. urls.add(url);
    26. fileNames.add(fileName);
    27. newFileNames.add(FileUtils.getName(fileName));
    28. originalFilenames.add(file.getOriginalFilename());
    29. }
    30. AjaxResult ajax = AjaxResult.success();
    31. ajax.put("urls", StringUtils.join(urls, FILE_DELIMETER));
    32. ajax.put("fileNames", StringUtils.join(fileNames, FILE_DELIMETER));
    33. ajax.put("newFileNames", StringUtils.join(newFileNames, FILE_DELIMETER));
    34. ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER));
    35. return ajax;
    36. }
    37. catch (Exception e)
    38. {
    39. return AjaxResult.error(e.getMessage());
    40. }
    41. }

    前端ajax请求方法:

    1. <script>
    2. var result;
    3. window.onload = function () {
    4. var input = document.getElementById("file_input");
    5. // var result;
    6. var dataArr = []; // 储存所选图片的结果(文件名和base64数据)
    7. var fd; //FormData方式发送请求
    8. var oSelect = document.getElementById("select");
    9. var oInput = document.getElementById("file_input");
    10. if (typeof FileReader === 'undefined') {
    11. alert("抱歉,你的浏览器不支持 FileReader");
    12. // 选中文件按钮不能点击
    13. input.setAttribute('disabled', 'disabled');
    14. } else {
    15. input.addEventListener('change', readFile, false);
    16. }
    17. function readFile() {
    18. fd = new FormData();
    19. let imgList = [];
    20. for (var i = 0; i < this.files.length; i++) {
    21. if (!input['value'].match(/.jpg|.gif|.png|.jpeg|.bmp/i)) {  //判断上传文件格式
    22. return alert("上传的图片格式不正确,请重新选择");
    23. }
    24. fd.append("files",this.files[i]);
    25. }
    26. //fd.append("files", imgList);
    27. console.log(fd);
    28. $.ajax({
    29. type: "POST",
    30. url: "/common/uploads",
    31. data: fd,
    32. cache: false,
    33. contentType: false,
    34. processData: false,
    35. dataType: 'json',
    36. success: function (result) {
    37. if (result.code == 200) {
    38. alert("上传成功")
    39. console.log(result);
    40. } else {
    41. alert(result.msg);
    42. }
    43. },
    44. });
    45. }
    46. }
    47. script>

  • 相关阅读:
    Unity中动画系统的性能优化
    java开发小公司跳槽华为od笔试面试过程
    php-fpm未授权访问漏洞
    【用unity实现100个游戏之9】使用Unity制作类八方旅人、饥荒风格的俯视角2.5D游戏
    一个react前端项目中的配置文件作用解析
    堆排序 ← 改编自《啊哈!算法》
    python多线程编程: 如何暴力但不失优雅地关闭线程
    在分布式事务场景下,如何设计一个高可靠的跨系统转账
    前端设计模式——外观模式
    【优化调度】基于粒子群实现并网模型下微电网的经济调度优化附matlab代码
  • 原文地址:https://blog.csdn.net/m0_60164821/article/details/126285628