之前没接触过这个,现在接手一个二次开发的项目,用到了这个,目前想实现一个显示默认图片,用户不选择就是提交这个图片,用户上传图片可以覆盖这个图片,并且这个图片可以删除。请教下各位,这个应该如何实现呢?下面是部分代码,我没整明白,希望了解的帮帮忙。$("#loading").ajaxStart(function(){
$(this).show();
}).ajaxComplete(function(){
$(this).hide();
});
$.ajaxFileUpload ({
async : false,
url:'${pageContext.request.contextPath}/addImg', //上传文件的服务端
secureuri:false,
fileElementId:'upFileImg',
type: 'POST',
dataType: 'json',
success: function (data, status)
{
$("<span id = "+siteSpan+"><input type='hidden' name="+imgAddName[0]+" value="+data.date+" id="+inputNumber+"><img id="+siteName+" src='allUploadImages/"+data.date+"'><br /><label id="+siteNumber+" class='dele_label' onclick='removeImg(this)'>删除</label></span>").appendTo($("#up_img"));
}
});
$(this).show();
}).ajaxComplete(function(){
$(this).hide();
});
$.ajaxFileUpload ({
async : false,
url:'${pageContext.request.contextPath}/addImg', //上传文件的服务端
secureuri:false,
fileElementId:'upFileImg',
type: 'POST',
dataType: 'json',
success: function (data, status)
{
$("<span id = "+siteSpan+"><input type='hidden' name="+imgAddName[0]+" value="+data.date+" id="+inputNumber+"><img id="+siteName+" src='allUploadImages/"+data.date+"'><br /><label id="+siteNumber+" class='dele_label' onclick='removeImg(this)'>删除</label></span>").appendTo($("#up_img"));
}
});
解决方案 »
- doubleselect传值问题
- 关于json-lib中JSONUtils设定日期转换格式的问题
- jar签名后firefox依然提示发行者未知
- 如何控制输入的URL地址格式是否有效,只支持http和tcp格式的。
- 从页面之间怎么传对象在另一个页面怎么得到啊?
- 模拟考试中自动组卷如何实现??
- JSP重定向问题
- 在index.jsp中单击不同的按钮,便显示不同的页面
- 初学者问题:怎样在JSP中运行JavaBean?
- 我现在已经大三了,请问下面的路如何走比较适合以后的社会?
- spring3.1 + mybatis 返回null正常,返回结果前台接收不到
- webservice如何发布,怎么得到wsdl?
这样好像还是不行,页面什么都没有呢success: function (data, status)
{
if(upFileImg==null)
$("<span id = "+siteSpan+"><input type='hidden' name="+imgAddName[0]+" value="+data.date+" id="+inputNumber+"><img id="+siteName+" src='images/ka._present.gif'><br /><label id="+siteNumber+" class='dele_label' onclick='removeImg(this)'>删除</label></span>").appendTo($("#up_img"));
else
$("<span id = "+siteSpan+"><input type='hidden' name="+imgAddName[0]+" value="+data.date+" id="+inputNumber+"><img id="+siteName+" src='allUploadImages/"+data.date+"'><br /><label id="+siteNumber+" class='dele_label' onclick='removeImg(this)'>删除</label></span>").appendTo($("#up_img"));
}
后台图片处理如下,并没有参数upFileImg啊,这个项目用的是mybatis@RequestMapping(value = "/addImg" , method = RequestMethod.POST)
@ResponseBody
public String addImgInformation(HttpServletRequest request, HttpServletResponse response) throws IOException{
Map<String,String> map = new HashMap<String , String>();
//转型为MultipartHttpRequest(重点的所在)
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
// 获得第1张图片(根据前台的name名称得到上传的文件)
MultipartFile imgFile = multipartRequest.getFile("file");
//保存第一张图片
if(!(imgFile.getOriginalFilename() ==null || "".equals(imgFile.getOriginalFilename()))) {
String newName = UUID.randomUUID().toString();
String fileName = imgFile.getOriginalFilename();
String ext = fileName.substring(fileName.lastIndexOf(".")+1,fileName.length());
//对扩展名进行小写转换
ext = ext.toLowerCase();
String outDir = request.getServletContext().getRealPath("/")+"allUploadImages/";
LOG.debug("==========================================>"+outDir);
File fileUrl = new File(outDir+newName+"."+ext);
LOG.debug("==========================================>"+newName+"."+ext);
imgFile.transferTo(fileUrl);
return "{date:'"+newName+"."+ext+"'}";
}else{
map.put("error","true");
map.put("date", "保存图片错误");
return "{date:'sdfs'}";
}
}
function imgFile(){
var imageSrc = document.getElementById("imageSelect").value;
$("#loading").ajaxStart(function(){
$(this).show();
}).ajaxComplete(function(){
$(this).hide();
});
}
我觉得应该是在下面这段话里显示还没上传时就显示默认图片,对么? $("#loading").ajaxStart(function(){
$(this).show();
}).ajaxComplete(function(){
$(this).hide();
});
应该是这样的逻辑吧,页面上有一个表单域有默认图片地址,有个上传按钮,你点击上传图片成功则更新表单域为新图片地址?
那你应该在
success: function (data, status)
{
$("<span id = "+siteSpan+"><input type='hidden' name="+imgAddName[0]+" value="+data.date+" id="+inputNumber+"><img id="+siteName+" src='allUploadImages/"+data.date+"'><br /><label id="+siteNumber+" class='dele_label' onclick='removeImg(this)'>删除</label></span>").appendTo($("#up_img"));
}
});
就是这一步,判断上传成功,然后把图片表单域的值修改为你最新上传的图片地址应该就没问题了。你应该在这个方法里判断是否上传成功吧..成功了再修改表单
(this).show(); //按理说在开始上传前这里应该显示一张默认图片,但是不值得该怎么让它显示呢?
}).ajaxComplete(function(){
$(this).hide();
});
这些都不是技术问题吧,是需求问题...技术上像你上面用的ajax都可以解决,没看出有什么问题?