FormData上传文件同时附带其他参数
前端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上传文件同时附带其他参数的更多相关文章
- C#使用HttpClient上传文件并附带其他参数
HttpClient和MultipartFormDataContent(传送门)最低适用于.NET Framework 4.5版本 发送端代码 using (HttpClient client = n ...
- 使用FormData上传文件、图片
关于FormData XMLHttpRequest Level 2添加了一个新的接口 ---- FormData 利用FormData对象,可以通过js用一些键值对来模拟一系列表单控件,可以使用XM ...
- (十)HttpClient以multipart/form-data上传文件
原文链接:https://blog.csdn.net/wsdtq123/article/details/78888734 POST上传文件 最早的HTTP POST是不支持文件上传的,给编程开发带来很 ...
- php上传文件涉及到的参数
php上传文件涉及到的参数: 几个参数调整: 0:文件上传时存放文件的临时目录.必须是 PHP 进程所有者用户可写的目录.如果未指定则 PHP 使用系统默认值 php.ini文件中uplo ...
- FormData上传文件 带进度条
* jQuery ajax FormData 上传文件 template $.ajax({ url: url, type: 'POST', data: new FormData(form), dat ...
- jQuery Ajax使用FormData上传文件和其他数据,后端web.py获取
参考博文: 通过jQuery Ajax使用FormData对象上传文件 方法一:使用<form>表单初始化FormData对象方式上传文件 前端(JQuery): <form enc ...
- Ajax通过FormData上传文件
1.使用<form>表单初始化FormData对象方式上传文件 HTML代码 <form id="uploadForm" enctype="multip ...
- FormData上传文件(input file)
<div> <input type="file" name="FileUpload" id="FileUpload" va ...
- c#+js 使用formdata上传文件
如果不是使用form表单submit的形式,我们可以手动通过formdata传值(针对文件上传等) 比如: <html> <head> <meta name=" ...
随机推荐
- Tensorflow 载入数据的三种方式
Tensorflow 数据读取有三种方式: Preloaded data: 预加载数据 Feeding: Python产生数据,再把数据喂给后端. Reading from file: 从文件中直接读 ...
- Tomcat学习笔记(二)
Servlet浅析 javax.servlet.Servlet是一个接口,所有的Servlet必须实现接口里面的方法. 该接口在tomcat/bin中的servlet-api.jar包中. Servl ...
- mysql数据定期备份删除
1.这里只写备份mysql的数据库的方法,全备份,包括定时删除. 准备工作,弄一个文件夹存数据库备份数据 第一步:编写shell 脚本,命名为shell.sh #备份数据库 backupdir=/we ...
- Python之面向对象:闭包和装饰器
一.闭包 1. 如果一个函数定义在另一个函数的作用域内,并且引用了外层函数的变量,则该函数称为闭包. def outter(): name='python' def inner(): print na ...
- Windows1小时后关机命令
shutdown -s -t 3600 1.注销当前用户 shutdown - l 该命令只能注销本机用户,对远程计算机不适用. 2.关闭本地计算机 shutdown - s 3.重启本地计算机 sh ...
- 使用java mail的网易smtp协议 发送邮件
package com.enation.newtest; import java.security.GeneralSecurityException; import java.util.Propert ...
- ZOJ 3822 Domination (三维概率DP)
E - Domination Time Limit:8000MS Memory Limit:131072KB 64bit IO Format:%lld & %llu Submi ...
- vue实现tab切换
需要弄类似tab切换的功能就是一个点击切换上一页下一页的页面 找到这个获得灵感 <!DOCTYPE html> <html lang="en"> <h ...
- 百度经验:Win10查看已存储WiFi密码的两种方法
方法一:网络和共享中心查询 具体步骤可以参考:Win10查看WIFI密码的方法 方法二:命令提示符查询 1.右键单击开始按钮,选择“命令提示符(管理员)” 2.输入如下命令(下图①号命令): nets ...
- Linux应用层的定时器Timer使用详解【转】
转自:http://blog.csdn.net/wwwtovvv/article/details/8601528 版权声明:本文为博主原创文章,未经博主允许不得转载. linux下定时器的使用 -- ...