上传用户logo功能

傷城~ 2022-01-29 09:21 383阅读 0赞

重要代码如下:

  1. //用户权限的判断,不用管
  2. <c:set var="isShow" value="${sessionScope.userSession.type==0 || customer == null }" />
  3. <c:if test="${isShow == false && sessionScope.userSession.type!=1 }">
  4. //logo上传的路径
  5. <input name="filePath" type="hidden" id="filePath" value="${customerProperty.logo}"/> //customerProperty是从一个后台controller调用service查询数据库的方法,查询出的集合值,通过jstl <c:forEach>标签遍历出来的var变量
  6. <div class="form-group">
  7. <label class="control-label col-md-3">LOGO
  8. </label>
  9. <div class="col-md-4">
  10. //这块儿做上传后的logo实时显示。
  11. <img src="${customerProperty.logo}"
  12. id="showLogo" />
  13. </div>
  14. </div>
  15. <div class="form-group">
  16. <label class="control-label col-md-3">上传LOGO
  17. </label>
  18. <div class="col-md-4">
  19. <input type="file" class="form-control fileChange"
  20. //onchange事件
  21. onchange="saveCustomerPropertyLogo(this)" accept="image/png,image/jpg,image/jpeg,image/gif" //用户可上传logo的文件类型限制
  22. id="uploadFile" />
  23. </div>
  24. </div>
  25. </c:if>
  26. var res = null;
  27. /**
  28. * 上传logo 通过ajax往后台controller方法传值
  29. */
  30. function saveCustomerPropertyLogo(obj){
  31. var cid = $('input[name="id"]').val();
  32. var formData = new FormData();
  33. formData.append("cid",cid); //当前客户cid
  34. formData.append("file", $(obj).get(0).files[0]); //当前客户所上传logo
  35. $.ajax({
  36. url: "customer/uploadLogo.smk",
  37. type: "POST",
  38. data: formData,
  39. async:false,
  40. processData: false,
  41. contentType: false,
  42. success: function (data) {
  43. res = JSON.parse(data)
  44. if( res.status == 200){
  45. $('input[name="filePath"]').val(res.data);
  46. $("#showLogo").attr('src',"upload/"+res.data)
  47. }else{
  48. msgModal("上传失败!!")
  49. }
  50. if (res.nologin === true) {
  51. msgModal('登录超时,请点击确定重新登录', 'login/logout.smk');
  52. }
  53. },
  54. error: function (data) {
  55. alert("上传出错,请稍后再试(#^.^#)");
  56. }
  57. })
  58. }

后台controller方法

  1. /**
  2. * 接收用户上传logo
  3. * @param uploadFile
  4. * @param cid
  5. * @return
  6. */
  7. @RequestMapping(value = "uploadLogo", method = RequestMethod.POST)
  8. public @ResponseBody
  9. ResponseResult uploadLogo(@RequestParam(value = "file") MultipartFile uploadFile,
  10. @RequestParam(value = "cid") String cid) {
  11. ResponseResult responseResult = new ResponseResult();
  12. responseResult.setStatus(500);
  13. /* 获取上传logo类型 */
  14. String fileType = uploadFile.getContentType();
  15. String fileName = uploadFile.getOriginalFilename().substring(uploadFile.getOriginalFilename().indexOf("."),
  16. uploadFile.getOriginalFilename().length());
  17. /* 校验用户上传logo类型 */
  18. if (fileType.endsWith("png") || fileType.endsWith("jpg") || fileType.endsWith("jpeg") || fileType.endsWith("gif")) {
  19. /* 上传logo时间 */
  20. String curTime = BaseUtils.getNow(BaseUtils.getConfigValue("template.datetime_format_full"));
  21. /* logo保存地址 */
  22. String logoPath = "logoupload/" + cid + "/" + curTime + fileName;
  23. /* 文件下载地址 */
  24. String uploadBasePath = BaseUtils.getConfigValue("upload.base.path");
  25. /* 保存用户上传logo文件 */
  26. boolean saveStatus = BaseUtils.saveFile(uploadFile, uploadBasePath + logoPath);
  27. if (saveStatus) {
  28. responseResult.setStatus(200);
  29. responseResult.setData(logoPath);
  30. }
  31. }
  32. return responseResult;
  33. }

发表评论

表情:
评论列表 (有 0 条评论,383人围观)

还没有评论,来说两句吧...

相关阅读

    相关 图片功能

           以前也实现过上传,只不过每次都是,写完之后没有总结,下次遇到时,还要重新写,重新调式,很是浪费时间,所以,今天实现一个上传图片的功能,包括简单的页面和servle