前端js代码:

       function fileSubmit() {

            var formData = new FormData();
formData.append("file",$("#FileUpload")[].files[]); var type = $('#file_type').val()
var user = $('#file_user').val()
formData.append("type",type)
formData.append("user",user) $.ajax({
url: baseURL+"etl/upload",
data: formData,
type: "Post",
dataType: "formData",
cache: false,//上传文件无需缓存
processData: false,//用于对data参数进行序列化处理 这里必须false
contentType: false, //必须
success: function (data) {
console.log(data)
console.log("success") if(data.code == ){
console.log(data.msg)
console.info("error");
$('#file_sqlRes').html("<span>"+data.msg+"</span>")
}else{
var taskId = data.taskId
$('#file_sqlRes').html("<span>TaskId为:"+taskId+"</span>")
} },
error: function (data) { }
}) }

后端Java代码:

/**
* 单文件上传
*
* @param file
*/
@RequestMapping(value = "/upload", method = RequestMethod.POST)
@ResponseBody
public AjaxObject upload(@RequestParam("file") MultipartFile file,String type,Long user) { String taskType = "F";
String featureType = type;
Long userOpt = user;
Long taskId = etlUtil.getTaskId(); if (file.isEmpty()) {
return AjaxObject.error(, "上传文件失败,请检查上传的文件");
}
// 获取文件名
String fileName = file.getOriginalFilename();
logger.info("上传的文件名为:" + fileName);
// 获取文件的后缀名
String suffixName = fileName.substring(fileName.lastIndexOf("."));
logger.info("上传的后缀名为:" + suffixName); // 文件上传后的路径
String filePath = etlConf.getUploadFilePath(); File dest = new File(filePath + fileName);
// 检测是否存在目录
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdirs();
} try {
file.transferTo(dest); Long res = 123L if (res != ) {
etlUtil.runDatax(taskId.toString(), featureType);
logger.info("taskId", taskId.toString());
return AjaxObject.ok().put("taskId", taskId.toString());
} else {
logger.error("TaskId插入失败");
return AjaxObject.error(, "TaskId插入失败,请联系管理员!").put("taskId", taskId.toString());
} } catch (IllegalStateException e) {
e.printStackTrace();
logger.error(e.toString(),e);
return AjaxObject.error(, "上传文件失败,请检查上传的文件,IllegalStateException");
} catch (IOException e) {
e.printStackTrace();
logger.error(e.toString(),e);
return AjaxObject.error(, "上传文件失败,请检查上传的文件,IOException");
} }

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. 【CF Round 429 B. Godsend】

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

  2. 自动设置 rem es模块写法

    export default function () { let html = document.documentElement; function onWindowResize() { if (ht ...

  3. code forces Codeforces Round #487 (Div. 2) C

    C. A Mist of Florescence time limit per test 1 second memory limit per test 256 megabytes input stan ...

  4. Oracle clob 操作

    --Oracle clob 操作 -- Created on 2015/4/8 by TianPing declare -- Local variables here v_clob1 Clob; v_ ...

  5. windows实时监测热插拔设备的变化2

    //动态监测设备插拔 #include <Dbt.h> BEGIN_MESSAGE_MAP(ParticipateMeeting, CDialogEx) ON_WM_DEVICECHANG ...

  6. ubuntu16.04安装flash plugin

    命令:apt-get install browser-plugin-freshplayer-pepperflash

  7. Codeforces538F A Heap of Heaps(函数式线段树)

    题意:给你一个数组a[n],对于数组每次建立一个完全k叉树,对于每个节点,如果父节点的值比这个节点的值大,那么就是一个违规点,统计出1~n-1完全叉树下的违规点的各自的个数. 一个直觉的思想就是暴力, ...

  8. 远程服务器的SqlServer允许本地连接

    最近做项目都是直接在阿里云买的服务器,并且SqlServer也是安装好的.但是默认的时候,这个服务器上的SqlServer并不允许直接在本地的SqlServer客户端访问,尽管服务器有公网IP. 想要 ...

  9. Linux下多进程服务端客户端模型一(单进程与多进程模型)

    本文将会简单介绍Linux下如何利用C库函数与系统调用编写一个完整的.初级可用的C-S模型. 一.基本模型: 1.1   首先服务器调用socket()函数建立一个套接字,然后bind()端口,开始l ...

  10. react this.props.form异步执行问题

    最近在做一个选择器联动时,碰到this.props.form的异步执行问题,导致选择器一直没有办法联动 如图,选择公司名称后,应该同步刷新门店选择默认值, 但同时又要清空门店选择的上一次记录 就用到了 ...