23,layui结合SpringMVC上传文件以及携带额外的参数上传文件

<!--相关的几个模态框-->
<!--1 S    上传图片的模态框-->
<%--隐藏打开的index--%>
<input type="hidden" id="hidden_picture_index">
<div class="x-body" style="display: none" id="pictureModal">
    <div class="layui-upload">
        <!--隐藏培养方案编号-->
        <input type="hidden" id="hidden_trainSchemeId">
        <!--隐藏上传文件的操作-->
        <input type="hidden" id="hidden_tmp_index">
        <button type="button" class="layui-btn" id="structurePicture"><!--动态赋值--></button>
        <!--预留一个预览的img标签-->
        <div id="imgDiv" style="display: none;margin-top: 10px;">
            <img id="imgPreview" width="400px" height="200px">
        </div>
        <div id="promptDiv" style="margin-top: 10px;display: none">
            <p><font style="font-size: 30px">您还没有上传课程关系结构图,请先上传课程关系结构图!</font></p>
        </div>
    </div>
</div>
<!--1 E    上传图片的模态框-->


2.上传文件的JS

layui.use(['upload','layer'],function () {
    var upload = layui.upload,layer = layui.layer;
    //普通图片上传
     var uploadInst = upload.render({
        elem: '#pic' //绑定元素
        , size: 500 //限制文件大小,单位 KB
        , accept: 'file' //普通文件
        , url: layui.setter.apiRoot + api.upload //上传接口
        , before: function (obj) { //obj参数包含的信息,跟 choose回调完全一致,可参
})
    this.data={savename :$("#temporarypic").html()};
            layer.load(); //上传loading
        }
        , done: function (res, index, upload) {
            layer.closeAll('loading'); //关闭loading
         if (res.code == "SUCCESS") {
                $('#picurl').val(res.data);
                $('#temporarypic').attr('src', urltemporary + res.data);
            } else {
                layer.alert('上传失败');
            }
        }
       , error: function (index, upload) {
            layer.closeAll('loading'); //关闭loading
        }
    });
        


controller

   @RequestMapping(value = "upload", produces = "application/json;charset=utf-8")
    public ResponseModel upload(MultipartFile file,String savename) throws Exception {
        AccountModel accountModel = currentAccount();
      ResponseModel responseModel = new ResponseModel();
        String filename = carouselService.upload(file, temporaryfilePath, formalfilePath,accountModel.getCompanycode());
        return responseModel.setData(filename);//返回名称
  }

service

  public String upload(MultipartFile file, String temporaryfilePath, String formalfilePath, String companycode ) throws Exception {
        String fileName = UploadFile.getupload(file, temporaryfilePath, formalfilePath);
    return fileName;
    }

util

 public static String getupload(org.springframework.web.multipart.MultipartFile file, String filePath, String formalfilePath) throws Exception {
//a.jpg--->.jpg
      String fileName = UUID.randomUUID().toString() + ertName;//uuid创建文件
        try {
            File dir = new File(filePath);
            File dirformal = new File(formalfilePath);
            if (!dir.exists()) {
//创建文件夹
                if (!dir.mkdirs()) {
                    return "";
                }
            }
      if (!dirformal.exists()) {
//创建文件夹
                if (!dirformal.mkdirs()) {
                    return "";
                }
            }

  FileCopyUtils.copy(file.getInputStream(), new FileOutputStream(new File(filePath + fileName)));//把文件写入磁盘
        } catch (IOException e) {
            e.printStackTrace();
        }
        return fileName;//返回名称
    }


附带文件移动的方法:

   /**
     * 文件 移动
     *
     * @param tempFile:移动对象
     * @param descFile:移动之后的对象
     * @return 文件是否移动成功
     */
    public static boolean renameTo(String tempFile, String descFile) {
        Boolean isCopyFile = true;
        try {

//文件路径model(比如:apk的路径,ipa的路径)
            if (!tempFile.equalsIgnoreCase("") && !descFile.equalsIgnoreCase("")) {
                File dest = new File(descFile);
                File file = new File(tempFile);
//判断移动的两个路径是否是一样的
              if (dest.getPath().equals(file.getPath())) {
                    return true;
                }
//如果这个文件已存在的话就删除(desc)copy的位置,并且显示
                if (dest.exists()) {
                    return true;
// dest.delete();
               }
//copy文件  file 复制到dest
                return file.renameTo(dest);
            }
        } catch (Exception ex) {
            isCopyFile = false;
            ex.printStackTrace();
        }
        return isCopyFile;
    }
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,099评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,473评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,229评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,570评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,427评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,335评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,737评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,392评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,693评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,730评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,512评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,349评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,750评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,017评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,290评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,706评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,904评论 2 335

推荐阅读更多精彩内容