【笔记】若依不分离文件上传

纯作为笔记,之前写过一遍但是没有做笔记,最近再遇到就想不起来了,于是翻出之前的代码贴上,以供参考

前端部分

h5

    <div class="row">
        <div class="col-sm-6">
            <div class="form-group">
                <label class="col-sm-3 control-label is-required">单位接收函:</label>
                <div class="col-sm-8">
                    <input id="filePath" name="filePath" class="form-control" type="file">
                    <p style="margin-top: 6px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;支持jpg、jpeg、png等多种图片格式</p>

                </div>
            </div>
        </div>
    </div>

js

<script th:inline="javascript">

    var prefix = ctx + "********"

    var uuid = $("#uuid").val();
    console.log("uuid" + uuid)
    var tp = 1;


    function submitHandler() {

        var fileName1 = $("#fileName").val()
        var file1 = $('#filePath')[0].files[0]

        if (fileName1.length == 0) {
            $.modal.alertWarning("请先填写单位名称");
            return false;
        }

        if ($('#filePath')[0].files[0] == null) {
            $.modal.alertWarning("请先选择文件路径");
            return false;
        }

        $.modal.confirm("确认要提交该申请吗?", function () {
            console.log("确定申请 开始提交")
            if ($.validate.form()) {
                uploadFile();
            }
        })
    }

    function uploadFile() {
        var formData = new FormData();

        console.log($('#filePath')[0].files[0])
        var jsObj = {};
        jsObj.name = $('#filePath')[0].files[0].name   //利用此种方法将obj转为string方便处理
        var size = $('#filePath')[0].files[0].size


        var name = JSON.stringify(jsObj.name);  //".jpg"


        console.log("切割双引号前name:" + name)

        name = name.slice(1, -1)   //.jpg
        console.log("切割双引号后name:" + name)
        console.log("size的大小换算成kb:" + Number(size) / 1024)

        var efg = name.lastIndexOf(".")
        name = name.substr(efg + 1)
        console.log("文件后缀:" + name)



        if (!("jpg" === name ||
            "jpeg" === name ||
            "png" === name ||
            "gif" === name)) {
            $.modal.alertWarning("目前仅支持图片格式的单位接收函上传,请重新选择!");
            return false;
        }


        formData.append('fileName', $("#fileName").val());
        formData.append('file', $('#filePath')[0].files[0]);
        formData.append('xh', $('#xh').val());


        $.ajax({
            url: prefix + "/add",
            type: 'post',
            cache: false,
            data: formData,
            processData: false,
            contentType: false,
            dataType: "json",
            beforeSend: function () {
                $.modal.loading("正在处理中,请稍候...");
                $.modal.disable();
            },
            success: function (result) {

                $.operate.successCallback(result);
                location.reload();
                // $.modal.msgSuccess("提交成功!");
            }
        });

    }


</script>

后端controller部分:

   @Log(title = "**********", businessType = BusinessType.INSERT)
//    @RequiresPermissions("xys_list_ffgl")
    @RequestMapping(value = "/add", method = RequestMethod.POST)
    @ResponseBody
    public AjaxResult add(@RequestParam("file") MultipartFile file,
                          @RequestParam("fileName") String fileName,
                          SysFileInfo fileInfo,

                          @RequestParam("xh") String xh) {


        //先用学号查询一遍  如果有就不可提交 让他去edit

        JobXysdw jobXysdw1 = jobXysdwService.selectJobXysdwByXH(xh);
        if (StringUtils.isNotNull(jobXysdw1)) {
            return AjaxResult.error("您已提交过申请,请勿重复提交!");
        }


        String uuid = StringUtils.getUUID();//设置一个文件的uuid  两个try之间不能通用所以定义在外边
        //先上传文件
        try {
            // 上传文件路径
            String filePath = RuoYiConfig.getUploadPath();
            // 上传并返回新文件名称
            String fileNewName = FileUploadUtils.upload(filePath, file);

            fileInfo.setFileUuid(uuid);
            fileInfo.setFileName(fileName);
            fileInfo.setFilePath(fileNewName);
            sysFileInfoService.insertSysFileInfo(fileInfo);
        } catch (Exception e) {
            e.printStackTrace();
            return AjaxResult.error("上传文件失败,请稍后再试!");
        }

        //再插入**********表
        try {


            JobXysdw jobXysdw = new JobXysdw();
            jobXysdw.setUuid(StringUtils.getUUID());

            Date date = new Date();
            SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            String format = sd.format(date);

            jobXysdw.setSqsj(format);      //申请时间
            jobXysdw.setXh(xh);             //学号
            jobXysdw.setDwmc(fileName);     //单位名称
            jobXysdw.setDwjsh(uuid);        //文件存储的uuid

            jobXysdwService.insertJobXysdw(jobXysdw);

            return AjaxResult.success("保存成功!");


        } catch (Exception e) {
            e.printStackTrace();
            return AjaxResult.error("系统出错,请稍后再试!");
        }
    }

预览回显

 

h5部分

<h4 id="type" class="form-header h4" style="margin-top: 30px;">协议书发放管理</h4>

    <div class="row">
        <div class="col-sm-6">
            <div class="form-group">
                <label class="col-sm-3 control-label is-required">单位名称:</label>
                <div class="col-sm-8">
                    <input name="dwmc" class="form-control" disabled th:value="${dwmc}" type="text">
                </div>
            </div>
        </div>
    </div>

    <div class="row">
        <div class="col-sm-6">
            <div class="form-group">
                <label class="col-sm-3 control-label is-required">单位接收函:</label>
                <div class="col-sm-8">
                    <!--                    <input name="dwjsh" class="form-control" disabled th:value="${dwjsh}" type="text">-->
                    <!--                    <img src="../../img/aboutus.jpg" id="jsh" title="双击放大或缩小" height="400px" width="400px"-->
                    <!--                         ondblclick="touchPhoto()"/>-->
                    <input id="dwjsh" hidden th:value="${dwjsh}" type="text">
                    <a class="btn btn-mini btn-info" onclick="ylDWJSH()">预览</a>
                    <a class="btn btn-mini btn-danger" hidden id="gbyl" onclick="gbyl()">关闭预览</a>
                    <img id="jshIMG" style="margin-top: 8px" height="700px" width="700px" hidden="hidden"/>
                    <p id="NoPhoto" style="margin-top: 8px" hidden>暂无图片</p>
                    <!-- src="/profile/upload/0d71ea04-1631-4c62-8a2e-78ec7448d57f.png"-->
                </div>
            </div>
        </div>
    </div>
    <br>

    <div class="row">
        <div class="col-sm-6">
            <div class="form-group">
                <label class="col-sm-3 control-label is-required">申请人:</label>
                <div class="col-sm-8">
                    <input name="xm" class="form-control" disabled th:value="${xm}" type="text">
                </div>
            </div>
        </div>
        <div class="col-sm-6">
            <div class="form-group">
                <label class="col-sm-3 control-label is-required">申请时间:</label>
                <div class="col-sm-8">
                    <input name="sqsj" class="form-control" disabled th:value="${sqsj}"></input>
                </div>
            </div>
        </div>
    </div>




<!--提交审核部分-->
    <div style="text-align: center;margin-top: 30px; margin-bottom: 30px">
        <a class="btn btn-mini btn-success" hidden id="tg" onclick="audit(true)">审核通过</a>
        &nbsp;&nbsp;&nbsp;
        <a class="btn btn-mini btn-danger" hidden id="btg" onclick="audit(false)">审核不通过</a>
        &nbsp;&nbsp;&nbsp;
        <a class="btn btn-mini btn-info" onclick="art.dialog.close();">关闭</a>
    </div>

 js部分


    function ylDWJSH() {
        var dwjsh = $("#dwjsh").val()
        if (dwjsh.length != 0) {
            // $(this).prop(‘href’, ‘xxx’) 设置属性
            $("#jshIMG").prop('src', dwjsh)
            $("#jshIMG").show()
        } else {
            $("#NoPhoto").show()
        }
        $("#gbyl").show()
    }


    function gbyl() {
        console.log("关闭预览")
        var dwjsh = $("#dwjsh").val()
        if (dwjsh.length != 0) {
            $("#jshIMG").hide()
        } else {
            $("#NoPhoto").hide()
        }
        $("#gbyl").hide()
    }


//提交审核部分
function audit(e) {

        var xxyj = $("#xxyj").val();
        var xyyj = $("#xyyj").val();
        var prefix = ctx + "job/xys"


        // console.log(ctx)
        // console.log(prefix)
        if (e) {

            $.operate.save(prefix + "/editSave", {
                uuid: uuid, xyshzt: "true",
                xxyj: xxyj, xyyj: xyyj
            });

        } else {


            $.operate.save(prefix + "/editSave", {
                uuid: uuid, xyshzt: "false",
                xxyj: xxyj, xyyj: xyyj
            });

        }
    }

后端回显部分

   /**
     * 协议书管理查看
     *
     * @return
     */
//    @RequiresPermissions("hw:jtap:edit")
    @RequiresPermissions("xys_list_ffgl")
    @RequestMapping(value = "/ffglxq")
    public ModelAndView ffglxq(String USER_ID, ModelMap mmap) {

        ModelAndView modelAndView = new ModelAndView();

        try {
            HashMap<String, String> xysffxq = jobXysdwService.selectXysAllByUUID(USER_ID);
            if (StringUtils.isNotNull(xysffxq)) {
                String uuid = xysffxq.get("UUID");
                String xm = xysffxq.get("XM");                  //姓名
                String nf = xysffxq.get("NF");                  //年级
                String sjhm = xysffxq.get("SJHM");              //手机号码
                String yxmc = xysffxq.get("YXMC");              //院系名称
                String zymc = xysffxq.get("ZYMC");              //专业名称
                String xh = xysffxq.get("XH");                  //学号
                String dwzh = xysffxq.get("DWZH");              //   单位账号
                String dwmc = xysffxq.get("DWMC");              //单位名称
                String dwjsh = xysffxq.get("DWJSH");            //  单位接收函
                String sqsj = xysffxq.get("SQSJ");              //申请时间
                String xyyj = xysffxq.get("XYYJ");              //学院意见
                String xyshzt = xysffxq.get("XYSHZT");           //学院审核状态
                String xyshsj = xysffxq.get("XYSHSJ");          //学院审核时间
                String xyshfzrgh = xysffxq.get("XYSHFZRGH");    //负责人工号
                String xxyj = xysffxq.get("XXYJ");               //学校意见
                String zxshzt = xysffxq.get("ZXSHZT");               //学校意见


                SysFileInfo sysFileInfo = sysFileInfoService.selectSysFileInfoByFileUuid(dwjsh);


                modelAndView.addObject("uuid", uuid);
                modelAndView.addObject("xm", xm);
                modelAndView.addObject("nf", nf);
                modelAndView.addObject("sjhm", sjhm);
                modelAndView.addObject("yxmc", yxmc);
                modelAndView.addObject("zymc", zymc);
                modelAndView.addObject("xh", xh);
                modelAndView.addObject("dwzh", dwzh);
                modelAndView.addObject("dwmc", dwmc);
                modelAndView.addObject("dwjsh", StringUtils.isNotNull(sysFileInfo) ? sysFileInfo.getFilePath() : null);
                modelAndView.addObject("sqsj", sqsj);
                modelAndView.addObject("xyyj", xyyj);
                modelAndView.addObject("xyshzt", xyshzt);
                modelAndView.addObject("xyshsj", xyshsj);
                modelAndView.addObject("xyshfzrgh", xyshfzrgh);
                modelAndView.addObject("xxyj", xxyj);
                modelAndView.addObject("zxshzt", zxshzt);
            } else throw new Exception("协议书为空");

        } catch (Exception e) {
            e.printStackTrace();
            modelAndView.addObject("errorMessage", "无效的协议书记录,此条协议书记录在后台处理出现错误,请联系管理员修复!错误代码为:\n" + e);
            modelAndView.setViewName("/error/service");
            return modelAndView;
        }

        modelAndView.setViewName(xysPrefix + "/ffglxq");
        return modelAndView;
    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值