springMvc Ajax 文件上传

本文介绍了一个用于添加品牌的接口实现细节,包括如何通过POST请求上传品牌Logo和Banner图片,并将相关信息存入数据库。此外,还提供了前端页面代码示例,展示了如何设置表单以收集必要的输入并提交给服务器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
     * 保存
     * @param json
     * @return
     */
    @RequestMapping(value = "/saveProdBrand",method=RequestMethod.POST)
    @ResponseBody
    public Object saveProdBrand(@RequestParam("uploadLogoFile") CommonsMultipartFile logoFile,
    @RequestParam("uploadBannerFile") CommonsMultipartFile bannerFile,
    @RequestParam("prodBrandName") String prodBrandName,
    @RequestParam("prodBrandDesc") String prodBrandDesc,HttpServletRequest request) {
    String logoFilename = logoFile.getFileItem().getName().trim();
    String bannerFilename = bannerFile.getFileItem().getName().trim();
try {
String filePath = request.getSession().getServletContext().getRealPath("upload");
File f = new File(filePath);
if (!f.exists()) {
f.mkdir();
}
//1--logo
String logoPath = filePath + "\\" + logoFilename;
File targetLogoFile = new File(logoPath);
logoFile.getFileItem().write(targetLogoFile);
//2--banner
String bannerPath = filePath + "\\" + bannerFilename;
File targetBannerFile = new File(bannerPath);
bannerFile.getFileItem().write(targetBannerFile);
//3 save
ProdBrand prodBrand = new ProdBrand();
prodBrand.setProdBrandDesc(prodBrandDesc);
prodBrand.setProdBrandName(prodBrandName);
prodBrand.setProdBrandLogoUrl(logoPath);
prodBrand.setProdBrandStatus("1");
prodBrand.setProdBrandBannerUrl(bannerPath);
    prodBrandService.insertSelective(prodBrand);
} catch (Exception e) {
e.printStackTrace();
}
ResultUtil resultUtil = new ResultUtil(ResultUtil.SUCCESS,ResultUtil.SUCCESS_INFO);
return resultUtil;

}




<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="c"   uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <link rel="stylesheet" href="${pageContext.request.contextPath}/css/bootstrap.min.css">
        <link rel="stylesheet" href="${pageContext.request.contextPath}/css/bootstrap-select.min.css">
        <link rel="stylesheet" href="${pageContext.request.contextPath}/css/reset.css">
        <link rel="stylesheet" href="${pageContext.request.contextPath}/css/font-awesome/css/font-awesome.min.css">
        <link rel="stylesheet" href="${pageContext.request.contextPath}/css/prodBrand/prodBrandList.css">
    <jsp:include page="/WEB-INF/view/common/include.jsp"></jsp:include>
    </head>
    <body>
    <h1><!-- 推荐管理 --><span> 添加品牌</span></h1>
  <form  id="frmUpload" action="${pageContext.request.contextPath}/prodBrand/saveProdBrand.do"
     method="post" enctype="multipart/form-data">
    <div class="brandcont">
           <div>
               <span>品牌名称</span>
               <input type="text" name="prodBrandName" id="prodBrandName" />
           </div>
           <div>
               <span>品牌logo</span>
               <input type="file" name="uploadLogoFile" id="uploadLogoFile" />
               <i>建议图片尺寸120x120</i>
           </div>
           <div>
               <span>品牌banner</span>
               <input type="file" name="uploadBannerFile" id="uploadBannerFile" />
               <i>建议图片尺寸1900x160</i>
           </div>
           <div>
               <span>品牌简介</span>
               <textarea name="prodBrandDesc" id="prodBrandDesc"></textarea>
           </div>
           <div class="btnbf">
               <button class="btn btn-info" οnclick="saveFile()">保存</button>
               <a href="${pageContext.request.contextPath}/prodBrand/prodBrandList.do">
               <button class="btn btn-info">返回</button>
               </a>
           </div>
    </div>
     </form>
          
         
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.11.3.min.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/bootstrap.min.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-form.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/bootstrap-select.min.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/prodBrand/prodBrandEdit.js"></script>
    
      


     
    </body>
</html>




/**
 * 上传文件
 */
function saveFile(){
var uploadBannerFile=$("#uploadBannerFile").val();
var uploadLogoFile=$("#uploadLogoFile").val();
if(uploadBannerFile!="" && uploadLogoFile!=null){


        var options  = {    
            url:ctx+'/prodBrand/saveProdBrand.do',    
            type:'post', 
            success:function(data)    
            {    
            alert(data.resultInfo);
            }    
        };    
        $("#frmUpload").ajaxSubmit(options);  
}else{
alert("请选择文件!");
}
}            

对于Spring MVC和AJAX文件上传下载,你可以按照以下步骤操作: 文件上传: 1. 创建一个包含文件上传表单的HTML页面。 2. 创建一个Spring MVC控制器,用于处理文件上传的请求。 3. 在控制器中,使用`@RequestMapping`注解来映射文件上传的URL,并使用`@RequestParam`注解来接收文件。 4. 在处理方法中,使用MultipartFile参数来接收上传的文件,并使用`transferTo()`方法将文件保存到指定位置。 文件下载: 1. 创建一个Spring MVC控制器,用于处理文件下载的请求。 2. 在控制器中,使用`@RequestMapping`注解来映射文件下载的URL。 3. 在处理方法中,使用`@PathVariable`注解来接收文件名参数。 4. 使用`ServletContext`对象获取文件路径,并创建一个`File`对象。 5. 使用`ResponseEntity`类设置下载响应的头部信息和内容。 通过AJAX实现文件上传和下载: 1. 使用JavaScript创建一个AJAX请求对象。 2. 使用FormData对象将文件添加到请求中。 3. 发送AJAX请求到Spring MVC控制器的URL,并设置请求方法为POST。 4. 在Spring MVC控制器中,使用MultipartFile参数接收文件,并处理文件上传的逻辑。 5. 在返回的响应中,可以包含上传成功或失败的消息。 注意:在Spring配置文件中,需要配置multipart解析器来支持文件上传。 以上是实现Spring MVC和AJAX文件上传下载的一般步骤,你可以根据具体需求进行适当的调整和扩展。希望对你有所帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值