今天用ajaxfileupload 上传图片,网上百度学习了半天 ,实现了一个图片的上传 ,成功了 。 同样的方法,同一个页面另外一个上传按钮却失败了。
跟踪了看 ,值都传到后台取到了;
CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest
.getFile(imgName);
imgName也是和页面的input type=file的id name 对应的 但是 这个file就是等于null。
弄了半天没搞出来 。 而且我原来是好好的上传功能,没用异步的,在从这个取不到file的页面跳转过去后,file文件同样获取不到,为null。
这个 搞得项目卡住了~ 真闹心啊 。求大神救我~
调试一下 肯定哪里出问题了! 不要急 你这里代码贴的太少了 异步就那样的格式 你按照格式检测一下.多试试
后台代码
/**
* 添加颜色图片
* */
@RequestMapping("/addColImg")
@ResponseBody
public String addColImg(HttpServletRequest request,Model model) {
String commId =request.getParameter("commodityId");
String colour =request.getParameter("colour");
String imgName =request.getParameter("imgName");
EncodingJudge ej = new EncodingJudge();
Map<String,Object> map = new HashMap<String,Object>();
if(commId!=null&&!commId.isEmpty()&&imgName!=null&&!imgName.isEmpty()){
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest
.getFile(imgName);
map =fileUploadService.picUpload(file, 1, Integer.parseInt(commId));
CommodityColour cc = new CommodityColour();
cc.setColourImage( map.get(ConstantUtil.FILE_PATH).toString()+map.get(ConstantUtil.PATH).toString());
cc.setColour(ej.toUTF8(colour) );
cc.setCommodityId(Integer.parseInt(commId));
cc.setState(1);
int i = commodityColourService.saveCommodityColour(cc) ;
if(i>0){
return cc.getId().toString();
}else{
return null;
}
}
return null;
}
```
前台js
```ruby
//添加自定义颜色
function addColImg(index){
var commid = $("#commodityId").val();
var col = $("#colour"+index+"").val();
$.ajaxFileUpload({
url: "<%=path%>/commodity/addColImg?commodityId="+commid+"&colour="+col+"&imgName=colImg"+index,
secureuri:true,
fileElementId:'colImg1',
dataType: 'json',
success: function (data){
var col = document.getElementById("colour"+index);
col.insertAdjacentHTML("beforeBegin","<input type='hidden' id='ccId"+index+"' value='"+data+"' />");
$("#btnAddCol"+index+"").hide();
$("#colImg"+index+"").remove();
}
})
}
```
那个web的input是通过js 拼接的
像这样: <input type="file" value="添加图片" id="colImg1" name="colImg1" />
js拼接代码:function getColourRow(){
var addRow =document.getElementById("getNew");
addRow.insertAdjacentHTML("beforeBegin","<span style='width:450px;display:inline-block;float:left;margin-bottom:20px;' id='selfCol"+i+"'>自定义颜色<input type='text' style='width:240px;' id='colour"+i+"' name='colour"+i+"' /><input type='file' value='添加图片' id='colImg"+i+"' name='colImg"+i+"' /><input type='button' id='btnAddCol"+i+"' onclick='unCheck("+i+")'id='addColour"+i+"' value='添加' /><input type='button' id='addColour"+i+"' onclick='deleCol("+i+++")' value='删除' /> </span>");
}
表单from是这样的: <form id="subform" action="<%=path %>/commodity/addSecond.do" method="post" enctype="multipart/form-data" >
我第一次添加是可以的 ,流程走的通 问题同标题