form表单中带有文件上传,同时提交

前台JS(easyUI)

function EditsubmitForm() { 
    var father = $('#select_category').combobox('getValue');
    $('#knowledgeAddForm').form('submit', { 
       url: "${path }/knowledgeAdd/addPageKnowledgeAdd?fatherId="+father, 
       onSubmit: function () {        //表单提交前的回调函数 
              var isValid = $(this).form('validate');//验证表单中的一些控件的值是否填写正确,比如某些文本框中的内容必须是数字 
              return isValid; // 如果验证不通过,返回false终止表单提交 
       }, 
       success: function () {  //表单提交成功后的回调函数,里面参数data是我们调用/BasicClass/ModifyClassInfo方法的返回值。 
               parent.$.messager.alert("添加成功","知识库添加成功!",'info');
               location.reload();
            } 
          });       
    }

前台表单

<form enctype="multipart/form-data" id="knowledgeAddForm" method="post" >
   <table class="grid">
      <tr>
            <td>内容</td>
            <td>
                  <textarea name="content" class="easyui-validatebox" data-options="required:true" value="${Knowledge.content}"></textarea>
            </td>
        </tr>
         <tr>
              <td>上传</td>
              <td>
                     <input id ="file" type="file" name="file" size="10">
              </td>
         </tr>
   </table>
       <div style="margin-top: 10px;"> 
            <a class="easyui-linkbutton" data-options="iconCls:'icon-ok'" style="margin-left: 0px;" onclick="EditsubmitForm()">确定</a> 
            <!-- <a class="easyui-linkbutton" data-options="iconCls:'icon-cancel'" style="margin-left: 60px;" onclick="EditclearForm()">取消</a>  -->
      </div>
</form>

后台controller层

@RequestMapping(value = "/knowledgeAddPage", method = RequestMethod.GET)
        public String addPage() {
            return "/knowledge/knowledgeAdd";
        }
        @RequestMapping(value = "/addPageKnowledgeAdd")
        public String addKnowledge(@RequestParam(value = "file") MultipartFile file,Knowledge knowledge,Long fatherId,HttpServletRequest req) throws IOException {
            String domain = req.getSession().getAttribute("domain").toString();
            String userName = req.getSession().getAttribute("username").toString();
            String fileName = file.getOriginalFilename();
            if(fileName==""){
                knowledge.setDomain(domain);//域名
                knowledge.setUserName(userName);//当前用户名
                knowledge.setFatherId(fatherId);//关联ID
                knowledgeAddService.addKnowledge(knowledge);
            }else{
                String suffix = fileName.substring(fileName.lastIndexOf(".") + 0);
                Date d2 = new Date();
                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
                String dateNumber = sdf.format(d2);
                String attachment = "D://"+dateNumber+suffix;
                File desc = MakeFileUtil.makefile(attachment);
                knowledge.setDomain(domain);
                knowledge.setUserName(userName);
                knowledge.setFileName(fileName);//文件名
                
                knowledge.setAttachment(attachment);//文件路径
                knowledge.setFatherId(fatherId);
                knowledgeAddService.addKnowledge(knowledge);
                
                file.transferTo(desc);//上传
                
            }
            return "/knowledge/knowledgeAdd";
        }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编码小白

tomcat源码解读四 tomcat中的processer

     Processor是一个接口,针对于不同协议下具有不同的具体实现类,其实现类的具体功能是处理http请求,主要是对协议进行解析,状态处理以及响应。然后...

48170
来自专栏向治洪

深入理解Android Instant Run运行机制

Instant Run Instant Run,是android studio2.0新增的一个运行机制,在你编码开发、测试或debug的时候,它都能显著减少你对...

1.9K100
来自专栏岑玉海

Carbondata源码系列(一)文件生成过程

在滴滴的两年一直在加班,人也变懒了,就很少再写博客了,最近在进行Carbondata和hive集成方面的工作,于是乎需要对Carbondata进行深入的研究。 ...

68760
来自专栏Java架构沉思录

深入理解-Spring-之源码剖析IOC(一)

作为Java程序员,Spirng我们再熟悉不过,可以说比自己的女朋友还要亲密,每天都会和他在一起,然而我们真的了解spring吗?

11730
来自专栏Ryan Miao

使用dropwizard(6)-国际化-easy-i18n

前言 Dropwizard官方文档并没有提供国际化的模块,所以只能自己加。Spring的MessageResource用的很顺手,所以copy过来。 Easy...

406120
来自专栏Java与Android技术栈

为爬虫框架构建Selenium模块、DSL模块(Kotlin实现)

NetDiscover是一款基于Vert.x、RxJava2实现的爬虫框架。我最近添加了两个模块:Selenium模块、DSL模块。

15120
来自专栏Java成神之路

Java企业微信开发_07_JSSDK多图上传

 所有的JS接口只能在企业微信应用的可信域名下调用(包括子域名),可在企业微信的管理后台“我的应用”里设置应用可信域名。这个域名必须要通过ICP备案,不然jss...

23320
来自专栏上善若水

021android初级篇之android的Context

021android初级篇之Android注解支持(Support Annotations)

12930
来自专栏DT乱“码”

Memcached使用实例

package com.memcached.util; import java.io.BufferedWriter; import java.io.FileW...

25060
来自专栏石奈子的Java之路

原 SpringBoot 2.0 系列00

15440

扫码关注云+社区

领取腾讯云代金券