Java 如何在ajax post调用中发送不同类型的数据
我有一个json对象,在同一个javascript中,我有两个文件上传对象来上传一个文件。当我尝试执行此操作时,请求不会发送到控制器。我试过这样做Java 如何在ajax post调用中发送不同类型的数据,java,javascript,jquery,ajax,json,Java,Javascript,Jquery,Ajax,Json,我有一个json对象,在同一个javascript中,我有两个文件上传对象来上传一个文件。当我尝试执行此操作时,请求不会发送到控制器。我试过这样做 data: {"jsonString":jsonString, "fd":"fd", "fd1":"fd1"}, 有人知道用json对象和file对象实现这个功能的其他方法吗?我只得到先前上传的文件名,但现在在这篇文章中,我想把它保存在一个特定的文件夹中 编辑: 在非表单提交中,我通过这个json对象值更新div内容,所以提交按钮不在div或jsp
data: {"jsonString":jsonString, "fd":"fd", "fd1":"fd1"},
有人知道用json对象和file对象实现这个功能的其他方法吗?我只得到先前上传的文件名,但现在在这篇文章中,我想把它保存在一个特定的文件夹中
编辑:
在非表单提交中,我通过这个json对象值更新div内容,所以提交按钮不在div或jsp表单的对话框按钮中,所以我从它们的对话框中调用一个java脚本,在这里,我有json值,并且我得到了要发送给控制器的所有三个文件对象
请参考我提出的问题
我的控制器逻辑不确定需要写什么我刚试过
@RequestMapping(value = "/submitAllInfo", method = RequestMethod.POST)
@ResponseStatus(value = HttpStatus.OK)
public @ResponseBody ModelAndView insertAllStepDetails(@RequestParam CommonsMultipartFile[] fileUpload,@RequestParam CommonsMultipartFile[] Uploadfile1,@RequestParam("UserName") String UserName) throws Exception{
System.out.println("in submit controller !!!");
System.out.println("ffffff"+UserName);
return new ModelAndView("success");
}
编辑:::
我的js函数所有div都是一种形式:
<script type="text/javascript">
function submitFormNew(){
alert("in final submission form");
var UserName=$('#uname').val();
alert(UserName);
var fileInput=document.getElementById("Uploadfile");
alert(fileInput);
var file=fileInput.files[0];
alert(file);
var formdata = new FormData();
formdata.append("fileUpload",file);
var fileInput1=document.getElementById("Uploadfile1");
var file1=fileInput1.files[0];
formdata.append("Uploadfile1",file1);
formdata.append("UserName",UserName);
$.ajax({
url:contextPath +"/submitAllInfo",
type: 'POST',
data: formdata,
async: false,
success: function (data) {
alert("in success");
alert(data);
},
error: function (){
alert("error has cocured");
},
cache: false
});
}
</script>
函数submitFormNew(){
警报(“最终提交格式”);
var UserName=$('#uname').val();
警报(用户名);
var fileInput=document.getElementById(“上传文件”);
警报(文件输入);
var file=fileInput.files[0];
警报(文件);
var formdata=new formdata();
formdata.append(“文件上传”,文件);
var fileInput1=document.getElementById(“Uploadfile1”);
var file1=fileInput1.files[0];
追加(“上传文件1”,文件1);
formdata.append(“用户名”,用户名);
$.ajax({
url:contextPath+“/submitAllInfo”,
键入:“POST”,
数据:formdata,
async:false,
成功:功能(数据){
警惕(“成功”);
警报(数据);
},
错误:函数(){
警报(“发生错误”);
},
缓存:false
});
}
在表单中尝试以下操作:
明白我的意思了吗?只需将表单放入对话框中,在从对话框移动时将数据添加到jsonObject。最后,您可以显示此内容,然后允许用户提交
<form id="data" method="post" enctype="multipart/form-data">
<div class='dialog'>
<input type="text" name="foo" value="bar" />
</div>
<div class='dialog'>
<input name="image" type="file" />
</div>
<div class='dialog'>
<input name="frroo" type="file" />
<button>Submit</button>
</div>
</form>
$("form#data").submit(function(){
var formData = new FormData($(this)[0]);
colsole.log(formdata);
$.ajax({
url: window.location.pathname,
type: 'POST',
data: formData,
async: false,
success: function (data) {
alert(data)
},
cache: false,
contentType: false,
processData: false
});
return false;
});
提交
$(“表单数据”).submit(函数(){
var formData=新formData($(此)[0]);
colsole.log(formdata);
$.ajax({
url:window.location.pathname,
键入:“POST”,
数据:formData,
async:false,
成功:功能(数据){
警报(数据)
},
cache:false,
contentType:false,
processData:false
});
返回false;
});
在表单中尝试以下操作:
明白我的意思了吗?只需将表单放入对话框中,在从对话框移动时将数据添加到jsonObject。最后,您可以显示此内容,然后允许用户提交
<form id="data" method="post" enctype="multipart/form-data">
<div class='dialog'>
<input type="text" name="foo" value="bar" />
</div>
<div class='dialog'>
<input name="image" type="file" />
</div>
<div class='dialog'>
<input name="frroo" type="file" />
<button>Submit</button>
</div>
</form>
$("form#data").submit(function(){
var formData = new FormData($(this)[0]);
colsole.log(formdata);
$.ajax({
url: window.location.pathname,
type: 'POST',
data: formData,
async: false,
success: function (data) {
alert(data)
},
cache: false,
contentType: false,
processData: false
});
return false;
});
提交
$(“表单数据”).submit(函数(){
var formData=新formData($(此)[0]);
colsole.log(formdata);
$.ajax({
url:window.location.pathname,
键入:“POST”,
数据:formData,
async:false,
成功:功能(数据){
警报(数据)
},
cache:false,
contentType:false,
processData:false
});
返回false;
});
在表单中尝试以下操作:
明白我的意思了吗?只需将表单放入对话框中,在从对话框移动时将数据添加到jsonObject。最后,您可以显示此内容,然后允许用户提交
<form id="data" method="post" enctype="multipart/form-data">
<div class='dialog'>
<input type="text" name="foo" value="bar" />
</div>
<div class='dialog'>
<input name="image" type="file" />
</div>
<div class='dialog'>
<input name="frroo" type="file" />
<button>Submit</button>
</div>
</form>
$("form#data").submit(function(){
var formData = new FormData($(this)[0]);
colsole.log(formdata);
$.ajax({
url: window.location.pathname,
type: 'POST',
data: formData,
async: false,
success: function (data) {
alert(data)
},
cache: false,
contentType: false,
processData: false
});
return false;
});
提交
$(“表单数据”).submit(函数(){
var formData=新formData($(此)[0]);
colsole.log(formdata);
$.ajax({
url:window.location.pathname,
键入:“POST”,
数据:formData,
async:false,
成功:功能(数据){
警报(数据)
},
cache:false,
contentType:false,
processData:false
});
返回false;
});
在表单中尝试以下操作:
明白我的意思了吗?只需将表单放入对话框中,在从对话框移动时将数据添加到jsonObject。最后,您可以显示此内容,然后允许用户提交
<form id="data" method="post" enctype="multipart/form-data">
<div class='dialog'>
<input type="text" name="foo" value="bar" />
</div>
<div class='dialog'>
<input name="image" type="file" />
</div>
<div class='dialog'>
<input name="frroo" type="file" />
<button>Submit</button>
</div>
</form>
$("form#data").submit(function(){
var formData = new FormData($(this)[0]);
colsole.log(formdata);
$.ajax({
url: window.location.pathname,
type: 'POST',
data: formData,
async: false,
success: function (data) {
alert(data)
},
cache: false,
contentType: false,
processData: false
});
return false;
});
提交
$(“表单数据”).submit(函数(){
var formData=新formData($(此)[0]);
colsole.log(formdata);
$.ajax({
url:window.location.pathname,
键入:“POST”,
数据:formData,
async:false,
成功:功能(数据){
警报(数据)
},
cache:false,
contentType:false,
processData:false
});
返回false;
});
var formdataAJX=新FormData();
var fileUpload1=$('#file1').val();
if(fileUpload1!=undefined&&fileUpload1!=null){
formdataAJX.append(“file1”,fileUpload);
}
var fileUpload2=$('#file2').val();
if(fileUpload2!=未定义&&fileUpload2!=null){
formdataAJX.append(“file2”,fileUpload);
}
$.ajax({
url:contextPath+“/submitAllInfo”,
键入:“POST”,
数据:formdataAJX,
async:false,
成功:功能(数据){
警报(数据);
},
缓存:false
});
在您的控制器中
将您的文件作为file1
和file2
获取,您可以在formData对象中附加其他参数,在我的示例中是formdataAJX
您应该使用formdata.append()
方法添加表单参数,如input
,select
,file
等…
var formdataAJX=新FormData();
var fileUpload1=$('#file1').val();
if(fileUpload1!=undefined&&fileUpload1!=null){
formdataAJX.append(“file1”,fileUpload);
}
var fileUpload2=$('#file2').val();
if(fileUpload2!=未定义&&fileUpload2!=null){