前端js代码:

  1. function fileSubmit() {
  2.  
  3. var formData = new FormData();
  4. formData.append("file",$("#FileUpload")[].files[]);
  5.  
  6. var type = $('#file_type').val()
  7. var user = $('#file_user').val()
  8. formData.append("type",type)
  9. formData.append("user",user)
  10.  
  11. $.ajax({
  12. url: baseURL+"etl/upload",
  13. data: formData,
  14. type: "Post",
  15. dataType: "formData",
  16. cache: false,//上传文件无需缓存
  17. processData: false,//用于对data参数进行序列化处理 这里必须false
  18. contentType: false, //必须
  19. success: function (data) {
  20. console.log(data)
  21. console.log("success")
  22.  
  23. if(data.code == ){
  24. console.log(data.msg)
  25. console.info("error");
  26. $('#file_sqlRes').html("<span>"+data.msg+"</span>")
  27. }else{
  28. var taskId = data.taskId
  29. $('#file_sqlRes').html("<span>TaskId为:"+taskId+"</span>")
  30. }
  31.  
  32. },
  33. error: function (data) {
  34.  
  35. }
  36. })
  37.  
  38. }

后端Java代码:

  1. /**
  2. * 单文件上传
  3. *
  4. * @param file
  5. */
  6. @RequestMapping(value = "/upload", method = RequestMethod.POST)
  7. @ResponseBody
  8. public AjaxObject upload(@RequestParam("file") MultipartFile file,String type,Long user) {
  9.  
  10. String taskType = "F";
  11. String featureType = type;
  12. Long userOpt = user;
  13. Long taskId = etlUtil.getTaskId();
  14.  
  15. if (file.isEmpty()) {
  16. return AjaxObject.error(, "上传文件失败,请检查上传的文件");
  17. }
  18. // 获取文件名
  19. String fileName = file.getOriginalFilename();
  20. logger.info("上传的文件名为:" + fileName);
  21. // 获取文件的后缀名
  22. String suffixName = fileName.substring(fileName.lastIndexOf("."));
  23. logger.info("上传的后缀名为:" + suffixName);
  24.  
  25. // 文件上传后的路径
  26. String filePath = etlConf.getUploadFilePath();
  27.  
  28. File dest = new File(filePath + fileName);
  29. // 检测是否存在目录
  30. if (!dest.getParentFile().exists()) {
  31. dest.getParentFile().mkdirs();
  32. }
  33.  
  34. try {
  35. file.transferTo(dest);
  36.  
  37. Long res = 123L
  38.  
  39. if (res != ) {
  40. etlUtil.runDatax(taskId.toString(), featureType);
  41. logger.info("taskId", taskId.toString());
  42. return AjaxObject.ok().put("taskId", taskId.toString());
  43. } else {
  44. logger.error("TaskId插入失败");
  45. return AjaxObject.error(, "TaskId插入失败,请联系管理员!").put("taskId", taskId.toString());
  46. }
  47.  
  48. } catch (IllegalStateException e) {
  49. e.printStackTrace();
  50. logger.error(e.toString(),e);
  51. return AjaxObject.error(, "上传文件失败,请检查上传的文件,IllegalStateException");
  52. } catch (IOException e) {
  53. e.printStackTrace();
  54. logger.error(e.toString(),e);
  55. return AjaxObject.error(, "上传文件失败,请检查上传的文件,IOException");
  56. }
  57.  
  58. }

FormData上传文件同时附带其他参数的更多相关文章

  1. C#使用HttpClient上传文件并附带其他参数

    HttpClient和MultipartFormDataContent(传送门)最低适用于.NET Framework 4.5版本 发送端代码 using (HttpClient client = n ...

  2. 使用FormData上传文件、图片

    关于FormData XMLHttpRequest Level 2添加了一个新的接口  ---- FormData 利用FormData对象,可以通过js用一些键值对来模拟一系列表单控件,可以使用XM ...

  3. (十)HttpClient以multipart/form-data上传文件

    原文链接:https://blog.csdn.net/wsdtq123/article/details/78888734 POST上传文件 最早的HTTP POST是不支持文件上传的,给编程开发带来很 ...

  4. php上传文件涉及到的参数

          php上传文件涉及到的参数: 几个参数调整: 0:文件上传时存放文件的临时目录.必须是 PHP 进程所有者用户可写的目录.如果未指定则 PHP 使用系统默认值 php.ini文件中uplo ...

  5. FormData上传文件 带进度条

    * jQuery ajax  FormData 上传文件 template $.ajax({ url: url, type: 'POST', data: new FormData(form), dat ...

  6. jQuery Ajax使用FormData上传文件和其他数据,后端web.py获取

    参考博文: 通过jQuery Ajax使用FormData对象上传文件 方法一:使用<form>表单初始化FormData对象方式上传文件 前端(JQuery): <form enc ...

  7. Ajax通过FormData上传文件

    1.使用<form>表单初始化FormData对象方式上传文件 HTML代码 <form id="uploadForm" enctype="multip ...

  8. FormData上传文件(input file)

    <div> <input type="file" name="FileUpload" id="FileUpload" va ...

  9. c#+js 使用formdata上传文件

    如果不是使用form表单submit的形式,我们可以手动通过formdata传值(针对文件上传等) 比如: <html> <head> <meta name=" ...

随机推荐

  1. Tensorflow 载入数据的三种方式

    Tensorflow 数据读取有三种方式: Preloaded data: 预加载数据 Feeding: Python产生数据,再把数据喂给后端. Reading from file: 从文件中直接读 ...

  2. Tomcat学习笔记(二)

    Servlet浅析 javax.servlet.Servlet是一个接口,所有的Servlet必须实现接口里面的方法. 该接口在tomcat/bin中的servlet-api.jar包中. Servl ...

  3. mysql数据定期备份删除

    1.这里只写备份mysql的数据库的方法,全备份,包括定时删除. 准备工作,弄一个文件夹存数据库备份数据 第一步:编写shell 脚本,命名为shell.sh #备份数据库 backupdir=/we ...

  4. Python之面向对象:闭包和装饰器

    一.闭包 1. 如果一个函数定义在另一个函数的作用域内,并且引用了外层函数的变量,则该函数称为闭包. def outter(): name='python' def inner(): print na ...

  5. Windows1小时后关机命令

    shutdown -s -t 3600 1.注销当前用户 shutdown - l 该命令只能注销本机用户,对远程计算机不适用. 2.关闭本地计算机 shutdown - s 3.重启本地计算机 sh ...

  6. 使用java mail的网易smtp协议 发送邮件

    package com.enation.newtest; import java.security.GeneralSecurityException; import java.util.Propert ...

  7. ZOJ 3822 Domination (三维概率DP)

    E - Domination Time Limit:8000MS     Memory Limit:131072KB     64bit IO Format:%lld & %llu Submi ...

  8. vue实现tab切换

    需要弄类似tab切换的功能就是一个点击切换上一页下一页的页面 找到这个获得灵感 <!DOCTYPE html> <html lang="en"> <h ...

  9. 百度经验:Win10查看已存储WiFi密码的两种方法

    方法一:网络和共享中心查询 具体步骤可以参考:Win10查看WIFI密码的方法 方法二:命令提示符查询 1.右键单击开始按钮,选择“命令提示符(管理员)” 2.输入如下命令(下图①号命令): nets ...

  10. Linux应用层的定时器Timer使用详解【转】

    转自:http://blog.csdn.net/wwwtovvv/article/details/8601528 版权声明:本文为博主原创文章,未经博主允许不得转载. linux下定时器的使用 -- ...