精华内容
下载资源
问答
  • 若依附件上传
    千次阅读
    2022-04-24 11:20:42

    若依访问上传头像报404错误?

    图片不显示,首先要考虑文件夹权限问题,其次考虑跨域问题,以上情况都没有则会出现linux服务器上传地址显示文件上传成功,但图片不显示,这种情况一般需要配置Nginx代理解决;

    以上为排查问题思路,我的情况是图片上传成功但不显示,则采用下面方案解决

    图片上传成功不能显示

    文件上传成功后,请求访问后台地址会根据profile进行匹配,需要自己配置nginx代理,参考如下。

    location /profile/ {
        # 方式一:指向地址
        proxy_pass http://127.0.0.1:8100/profile/; 
    }
    
    location /profile/
    {
        # 方式二:指向目录,对应后台`application.yml`中的`profile`配置
        alias /home/jk/uploadPath/;
    }
    更多相关内容
  • 若依(ruoyi)】附件上传功能

    千次阅读 2021-11-30 13:55:38
    附件上传功能 表格使用若依(ruoyi)封装的bootstrapTable 表格数据加载使用bootstrapTable的默认方式(从url拉取数据) 在表格加载完成后,添加一空行,空行操作为“上传” 点击上传按钮后,出现选择文件对话框。...

    前言

    • 若依(ruoyi): v4.6.0
    • layui: 2.3.0。参考这里
    • jQuery: v2.1.4

    附件上传功能

    在这里插入图片描述

    • 表格使用若依(ruoyi)封装的bootstrapTable
    • 表格数据加载使用bootstrapTable的默认方式(从url拉取数据)
    • 在表格加载完成后,添加一空行,空行操作为“上传”
    • 点击上传按钮后,出现选择文件对话框。选择完文件,立即开始上传。
    • 上传完成后,刷新表格
    • 删除完成后,刷新表格

    上传列表渲染

    <div class="form-group">
        <label class="col-sm-2 control-label">附件:</label>
        <div class="col-sm-10">
            <input type="hidden" class="form-control" name="aid" id="aid">
            <table id="bootstrap-table"></table>
        </div>
    </div>
    
    /*附件表格*/
    $(function() {
        var options = {
            data: [],
            url: ctx + "xxx/list",
            removeUrl: ctx + "xxx/delete",
            modalName: "附件",
            pagination: false,
            showSearch: false,
            showRefresh: false,
            showToggle: false,
            showColumns: false,
            sidePagination: "client",
            columns: [{
                field: 'id',
                title: 'ID',
                visible: false,
            },
            ...
            {
                title: '操作',
                align: 'center',
                formatter: function(value, row, index) {
                    var actions = [];
                    actions.push('<a class="btn btn-danger btn-xs" href="javascript:void(0)" οnclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
                    return actions.join('');
                }
            }],
            queryParams: function () {
                return {pid: window.pid};
            },
        };
        $.table.init(options);
    });
    
    • removeUrlxxx/delete?ids=xxx

    上传按钮

    在表格渲染完成后,向表格中新增一行,改行的操作为“上传”

    /*附件表格*/
    $(function() {
        var options = {
            ...
            columns: [
            ...
            {
                title: '操作',
                align: 'center',
                formatter: function(value, row, index) {
                    var actions = [];
                    if (row.newLine) {
                        actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" id="uploadBtn"><i class="fa fa-plus"></i>上传</a> ');
                    } else {
                        actions.push('<a class="btn btn-danger btn-xs" href="javascript:void(0)" οnclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
                    }
                    return actions.join('');
                }
            }],
            onLoadSuccess: function() {
                sub.addColumnWithoutSave({newLine:true});
            },
            ...
        };
        $.table.init(options);
    });
    
    • subsubruoyi/js/common.js 中定义。
    • sub 添加 addColumnWithoutSave 方法
        addColumnWithoutSave: function(row, tableId) {
        	var currentId = $.common.isEmpty(tableId) ? table.options.id : tableId;
        	table.set(currentId);
        	var count = $("#" + currentId).bootstrapTable('getData').length;
        	$("#" + currentId).bootstrapTable('insertRow', {
                index: count + 1,
                row: row
            });
        }
    

    为上传按钮添加点击事件

    /*附件表格*/
    $(function() {
        var options = {
            ...
            columns: [
            ...
            {
                title: '操作',
                align: 'center',
                formatter: function(value, row, index) {
                    var actions = [];
                    if (row.newLine) {
                        actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" id="uploadBtn"><i class="fa fa-plus"></i>上传</a> ');
                    } else {
                        actions.push('<a class="btn btn-danger btn-xs" href="javascript:void(0)" οnclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
                    }
                    return actions.join('');
                }
            }],
            onLoadSuccess: function() {
                sub.addColumnWithoutSave({newLine:true});
                bindAction4UploadBtn();
            },
            ...
        };
        $.table.init(options);
        
        window.bindAction4UploadBtn= function () {
            $("#uploadBtn").click(function(){
                console.log("click uploadBtn");
            });
        }
    });
    

    为上传按钮的绑定上传控件

    /*附件表格*/
    $(function() {
        var options = {
            ...
            columns: [
            ...
            {
                title: '操作',
                align: 'center',
                formatter: function(value, row, index) {
                    var actions = [];
                    if (row.newLine) {
                        actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" id="uploadBtn"><i class="fa fa-plus"></i>上传</a> ');
                    } else {
                        actions.push('<a class="btn btn-danger btn-xs" href="javascript:void(0)" οnclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
                    }
                    return actions.join('');
                }
            }],
            onLoadSuccess: function() {
                sub.addColumnWithoutSave({newLine:true});
                bindAction4UploadBtn();
            },
            ...
        };
        $.table.init(options);
        
        window.bindAction4UploadBtn= function () {
            /*绑定上传控件*/
            layui.use('upload', function(){
    			var upload = layui.upload;
    			upload.render({
    			    elem: '#uploadBtn' //绑定元素
    			    ,url: ctx+'xxx/upload' //上传接口
    			    ,size : 3*1024 //文件大小3M
    			    ,exts: 'jpg|jpeg|png' //限制上传文件的后缀名
    			    ,auto: true /*选择文件后,立即上传*/
    			    ,data: { pid: xxx }
    			    ,before: function(obj){
    			    	$.modal.loading("正在处理中,请稍后...");
    			    }
    			    ,done: function(res){
    			        /*上传完成处理业务逻辑*/
    			        $.modal.closeLoading();
    			        $.modal.msgSuccess(res.msg);
    			        /*刷新表格*/
    			        $.table.refresh();
    			    }
    			    ,error: function(e){
    			    	console.log("error==="+e);
    			    }
    			  });
    		});
        }
    });
    
    展开全文
  • 若依项目上传下载附件实现

    千次阅读 2019-08-21 09:54:06
    上传下载附件的功能是基于bootstrap fileinput组件实现的。 其源码以及API地址如下: bootstrap-fileinput源码:https://github.com/kartik-v/bootstrap-fileinput bootstrap-fileinput在线API:...

    该上传下载附件的功能是基于bootstrap fileinput组件实现的。

    其源码以及API地址如下:

    bootstrap-fileinput源码:https://github.com/kartik-v/bootstrap-fileinput

    bootstrap-fileinput在线API:http://plugins.krajee.com/file-input

    bootstrap-fileinput Demo展示:http://plugins.krajee.com/file-basic-usage-demo

    先看一下实现的效果图:此处与默认的上传样式有区别,是因为使用了【explorer】样式的主题。

     

    下面记录一下具体实现步骤:

    1、下载源码,将相应js、css分别放入static目录下,如下:主要是fileinput.min.js、fileinput.min.js、以及用于显示中文的zh.js、主题相关theme.min.js、theme.min.css

      

     

    2、在include.html中引入相应js、css

    <link th:href="@{/css/bootstrap-fileinput/fileinput.min.css}" rel="stylesheet"/>
    <link th:href="@{/css/bootstrap-fileinput/themes/explorer/theme.min.css}" rel="stylesheet"/>

     

    <script th:src="@{/js/plugins/bootstrap-fileinput/fileinput.min.js}"></script>
    <script th:src="@{/js/plugins/bootstrap-fileinput/themes/explorer/theme.min.js}"></script>
    <script th:src="@{/js/plugins/bootstrap-fileinput/locales/zh.js}"></script>

    3、先考虑后端的实现,此处需要在数据库中新建一张sys_attachment表,用于保存上传图片的相关信息,包括图片名称、图片路径等,生成语句如下:

    复制代码
    DROP TABLE IF EXISTS `sys_attachment`;
    CREATE TABLE `sys_attachment` (
      `id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT 'id',
      `business_type` varchar(40) DEFAULT NULL COMMENT '业务类型',
      `business_id` varchar(40) DEFAULT NULL COMMENT '业务Id',
      `file_path` varchar(100) DEFAULT NULL COMMENT '文件路径',
      `file_name_real` varchar(100) DEFAULT NULL COMMENT '真实的文件名',
      `file_name_show` varchar(100) DEFAULT NULL COMMENT '显示用的文件名',
      `file_size` bigint(10) DEFAULT NULL COMMENT '文件大小',
      `del_flag` int(10) DEFAULT NULL COMMENT '删除标记',
      `create_time` datetime DEFAULT NULL COMMENT '创建时间',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=81 DEFAULT CHARSET=utf8 COMMENT='附件表';
    复制代码

    4、后台创建sys_attachment对应的实体、mapper、service、controller文件。此处主要展示AttachmentController层代码:

    复制代码
    @Controller
    @RequestMapping("/system/attachment")
    public class AttachmentController extends BaseController
    {
        private String prefix = "system/attachment";    
        @Autowired
        private IAttachmentService attachmentService;
        @RequiresPermissions("module:attachment:view")
        @GetMapping()
        public String attachment()
        {
            return prefix + "/attachment";
        }
        @PostMapping("/load")
        @ResponseBody
        public String load(Attachment attachment)
        {
            List<Attachment> alist = attachmentService.selectAttachmentList(attachment);
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("success", true);
            jsonObject.put("alist", alist);
            return jsonObject.toString();
        }
        @PostMapping("/delete")
        @ResponseBody
        public AjaxResult delete(String ids)
        {
            try
            {
                return toAjax(attachmentService.deleteAttachmentByIds(ids));
            }
            catch (Exception e)
            {
                return error(e.getMessage());
            }
        }
        @PostMapping("/save")
        @ResponseBody
        public AjaxResult save(Attachment attachment)
        {
            return toAjax(attachmentService.insertAttachment(attachment));
        }
       }
    复制代码

    5、将附件上传的方法,加入至 CommonController.java中

    复制代码
        @RequestMapping("common/upload")
        @ResponseBody
        public String fileUpload(@RequestParam MultipartFile file)
        {
             JSONObject json = new JSONObject();
             if(file!=null){
                try {
                    //上传文件,返回文件名
                    String fileName = FileUploadUtils.upload(Global.getDownloadPath(), file);
                    //拼装文件名、文件路径信息,返回json
                    json.put("success", true);
                    json.put("filePath", Global.getDownloadPath() + fileName);
                    json.put("fileNameReal", fileName);
                    json.put("fileNameShow", file.getOriginalFilename());
                    json.put("fileSize", file.getSize());
                    return json.toString();
                    } catch (IOException e) {
                    json.put("success", false);    
                     json.put("msg", "上传失败!");    
                     return json.toString();
                }}else {
                json.put("success", false);
                json.put("msg", "请选择附件!");
                return json.toString();
            }                   
        }
    复制代码

    6、在ry-ui.js中封装【初始化上传附件】、【初始化编辑附件】、【执行上传附件】、【执行下载附件】的相关js代码。

         其中相应的配置大部分都有注释解释了,如果需要更详细的了解具体的参数配置详情,可以参考:https://www.cnblogs.com/parker-yu/p/7207071.html,或查看官方API说明。

         代码内容比较多,可能还有可以优化的地方,后续可能会优化。

    复制代码
            //文件的操作
            file :{
                //初始化新增附件
                initAddFiles : function (ctrlName,fileType){
                 var control = $('#' + ctrlName); 
              // 具体参数自行查询 
                    control.fileinput({ 
                        theme: "explorer", //主题
                        language: 'zh', //设置语言
                        uploadUrl: '/common/upload',  //上传的地址
                        enctype: 'multipart/form-data',
                        uploadAsync: true, 
                        showUpload: false, //是否显示上传按钮
                        showPreview: true,//是否展前预览
                        dropZoneEnabled: false,//是否显示拖拽区域
                        allowedFileExtensions : fileType == 'file' ? ['doc','docx','xls','xlsx','pdf','txt','ppt','zip'] : ['jpg','gif','png'],//接收的文件后缀
                        maxFileCount: 10, 
                        msgFilesTooMany: "选择上传的文件数量 超过允许的最大数值!", 
                        previewFileIcon: '<i class="fa fa-file"></i>', 
                        layoutTemplates :{                  
                                    actionUpload:'',//去除上传预览缩略图中的上传图片;     
                                    actionZoom:'',   //去除上传预览缩略图中的查看详情预览的缩略图标。
                        },
                        allowedPreviewTypes: ['image'],
    					previewFileIconSettings: { 
                           'doc': '<i class="fa fa-file-word-o text-primary"></i>',
                           'xls': '<i class="fa fa-file-excel-o text-success"></i>',
                           'ppt': '<i class="fa fa-file-powerpoint-o text-danger"></i>',
                           'pdf': '<i class="fa fa-file-pdf-o text-danger"></i>',
                           'zip': '<i class="fa fa-file-archive-o text-muted"></i>',
                           'txt': '<i class="fa fa-file-text-o text-info"></i>',
                        }, 
                        previewFileExtSettings: { // configure the logic for determining icon file extensions
                              'doc': function(ext) {return ext.match(/(doc|docx)$/i);},
                              'xls': function(ext) {return ext.match(/(xls|xlsx)$/i);},
                              'ppt': function(ext) {return ext.match(/(ppt|pptx)$/i);},
                              'zip': function(ext) {return ext.match(/(zip|rar|tar|gzip|gz|7z)$/i);},
                              'txt': function(ext) {return ext.match(/(txt|ini|csv|java|php|js|css)$/i);}
                          }
                    }); 
                },
                //初始化编辑附件
                initEditFiles : function(ctrlName,fileType,businessType,businessId){
                    $.ajax({ 
                        type : "post", 
                        url : "/system/attachment/load", 
                        dataType : "json", 
                        data:{
                            "businessType" :businessType,
                            "businessId" : businessId
                        },
                        success : function(data) { 
                            //layer.msg('操作成功!'); 
                            $.file.loadEditFiles(ctrlName,fileType,data); 
                        }, 
                        error: function(XMLHttpRequest, textStatus, errorThrown) { 
                            layer.msg('操作失败!'); 
                        } 
                    }); 
                   },
                //获取已上传需要编辑的附件
                loadEditFiles:  function (ctrlName,fileType,djson){
                   var control = $('#' + ctrlName); 
                    //后台返回json字符串转换为json对象 
                    var reData = eval(djson).alist; 
                    // 预览图片json数据组 
                    var preList = new Array(); 
                       for ( var i = 0; i < reData.length; i++) { 
                        var array_element = reData[i]; 
                        // 此处指针对.txt判断,其余自行添加 
                        if(array_element.fileNameReal.indexOf("txt") > 0){ 
                            // 非图片类型的展示 
                            preList[i]= "<div class='file-preview-other-frame'><div class='file-preview-other'><span class='file-icon-4x'><i class='fa fa-file-text-o text-info'></i></span></div></div>"
                        }else if(array_element.fileNameReal.indexOf("doc") > 0){
                            preList[i]= "<div class='file-preview-other-frame'><div class='file-preview-other'><span class='file-icon-4x'><i class='fa fa-file-word-o text-primary'></i></span></div></div>"
                        }else if(array_element.fileNameReal.indexOf("xls") > 0){
                            preList[i]= "<div class='file-preview-other-frame'><div class='file-preview-other'><span class='file-icon-4x'><i class='fa fa-file-excel-o text-success'></i></span></div></div>"
                        }else if(array_element.fileNameReal.indexOf("ppt") > 0){
                            preList[i]= "<div class='file-preview-other-frame'><div class='file-preview-other'><span class='file-icon-4x'><i class='fa fa-file-powerpoint-o text-danger'></i></span></div></div>"
                        }else if(array_element.fileNameReal.indexOf("zip") > 0){
                            preList[i]= "<div class='file-preview-other-frame'><div class='file-preview-other'><span class='file-icon-4x'><i class='fa fa-file-archive-o text-muted'></i></span></div></div>"
                        }else if(array_element.fileNameReal.indexOf("pdf") > 0){
                            preList[i]= "<div class='file-preview-other-frame'><div class='file-preview-other'><span class='file-icon-4x'><i class='fa fa-file-pdf-o text-danger'></i></span></div></div>"
                        }else{ 
                            // 图片类型 
                            preList[i]= "<img src=\" "+ctx+"profile/download/"+array_element.fileNameReal+"\" class=\"file-preview-image\"  height=\"80\" width=\"80\">"; 
                        } 
                    } 
                    var previewJson = preList; 
                    // 与上面 预览图片json数据组 对应的config数据 
                    var preConfigList = new Array(); 
                    for ( var i = 0; i < reData.length; i++) { 
                        var array_element = reData[i]; 
                            var tjson = {
                                caption: array_element.fileNameShow, // 展示的文件名
                                size : array_element.fileSize,
                                width: '120px', 
                                url: '/system/attachment/delete', // 删除url 
                                key: array_element.fileNameReal, // 删除是Ajax向后台传递的参数 
                                extra: {ids: array_element.id} 
                            }; 
                            preConfigList[i] = tjson; 
                    } 
                    // 具体参数自行查询 
                    control.fileinput({ 
                        theme: "explorer",
                        language: 'zh', //设置语言
                        uploadUrl: '/common/upload',  //上传的地址
                        enctype: 'multipart/form-data',
                        uploadAsync: true, 
                        showUpload: false, //是否显示上传按钮
                        showPreview: true,//是否展前预览
                        dropZoneEnabled: false,//是否显示拖拽区域
                        showRemove:false, //是否显示移除按钮
                        allowedFileExtensions : fileType == 'file' ? ['doc','docx','xls','xlsx','pdf','txt','ppt','zip'] : ['jpg','gif','png'],//接收的文件后缀
                        maxFileCount: 10, 
                        msgFilesTooMany: "选择上传的文件数量 超过允许的最大数值!", 
                        previewFileIcon: '<i class="fa fa-file"></i>', 
                        layoutTemplates :{                  
                                    actionUpload:'',//去除上传预览缩略图中的上传图片;     
                                    actionZoom:'',   //去除上传预览缩略图中的查看详情预览的缩略图标。
                        },
                        allowedPreviewTypes: ['image'],
                        initialPreview: previewJson, 
                        initialPreviewConfig: preConfigList,
                        otherActionButtons:'<button type="button" class="kv-file-down btn btn-sm btn-default" data-key = {key} οnclick="$.file.download(this)" title="下载附件"><i class="fa fa-cloud-download"></i></button>',
    				     previewFileIconSettings: { 
                           'doc': '<i class="fa fa-file-word-o text-primary"></i>',
                           'xls': '<i class="fa fa-file-excel-o text-success"></i>',
                           'ppt': '<i class="fa fa-file-powerpoint-o text-danger"></i>',
                           'pdf': '<i class="fa fa-file-pdf-o text-danger"></i>',
                           'zip': '<i class="fa fa-file-archive-o text-muted"></i>',
                           'htm': '<i class="fa fa-file-code-o text-info"></i>',
                           'txt': '<i class="fa fa-file-text-o text-info"></i>',
                           'mov': '<i class="fa fa-file-video-o text-warning"></i>',
                           'mp3': '<i class="fa fa-file-audio-o text-warning"></i>',
                           'jpg': '<i class="fa fa-file-photo-o text-danger"></i>', 
                           'gif': '<i class="fa fa-file-photo-o text-muted"></i>', 
                           'png': '<i class="fa fa-file-photo-o text-primary"></i>'    
                        }, 
                        previewFileExtSettings: { // configure the logic for determining icon file extensions
                              'doc': function(ext) {return ext.match(/(doc|docx)$/i);},
                              'xls': function(ext) {return ext.match(/(xls|xlsx)$/i);},
                              'ppt': function(ext) {return ext.match(/(ppt|pptx)$/i);},
                              'zip': function(ext) {return ext.match(/(zip|rar|tar|gzip|gz|7z)$/i);},
                              'htm': function(ext) {return ext.match(/(htm|html)$/i);},
                              'txt': function(ext) {return ext.match(/(txt|ini|csv|java|php|js|css)$/i);},
                              'mov': function(ext) {return ext.match(/(avi|mpg|mkv|mov|mp4|3gp|webm|wmv)$/i);},
                              'mp3': function(ext) {return ext.match(/(mp3|wav)$/i);}
                          }
                    }); 
                    },
                //执行上传附件
                uploadFile : function(ctrlName,businessType,businessId){
                     var control = $('#' + ctrlName); 
                    var file = control.val();
                    if(file != '' ){
                         //执行上传
                        control.fileinput("upload");
                        //上传成功后的处理
                        control.on("fileuploaded", function(event, outData) {
                         var result = outData.response;
                          var filePath = result.filePath;
                             var fileNameReal = result.fileNameReal;
                             var fileNameShow = result.fileNameShow;
                             var fileSize = result.fileSize;
                             $.ajax({
                                cache : true,
                                type : "POST",
                                url : "/system/attachment/save",
                                data : {
                                    "businessType" : businessType,
                                    "businessId" : businessId,
                                    "filePath" : filePath,
                                    "fileNameReal" : fileNameReal,
                                    "fileNameShow" : fileNameShow,
                                    "fileSize" : fileSize,
                                    "delFlag" : '0'
                                },
                                async : false,
                                error : function(request) {
                                },
                                success : function(data) {
                                }
                             });
                        })
                    }
                },
                //执行下载附件
                download : function(obj){
                    var $btn = $(obj),dataKey = $btn.data('key');
                    if(dataKey == false){
                        layer.msg('暂未上传,无法下载!'); 
                    }else{
                        window.location.href="/common/download?fileName="+dataKey;
                    }
                }
    }
    复制代码

    7、页面调用。

         在新增页面上:

                <div class="form-group">    
                    <label class="col-sm-3 control-label">附件上传:</label>
                    <div class="col-sm-8">
                        <input id="file-Portrait" type="file" multiple="multiple" name="file">
                    </div>
                </div>
           $(function() {
                //初始化上传组件
                $.file.initAddFiles("file-Portrait","file");
    });

       使用ajax保存相应业务数据成功后,调用上传组件:

       注意此处可以从data中获取businessId,需要覆写一下toAjax方法,需要将业务保存后的Id传入该json中,以便获取。

    复制代码
            $.ajax({
                        cache : true,
                        type : "POST",
                        url : prefix + "/add",
                        data : $('#form-notice-add').serialize(),
                        async : false,
                        error : function(request) {
                            $.modal.alertError("系统错误");
                        },
                        success : function(data) {
                         var businessId = data.businessId;
    					$.file.uploadFile("file-Portrait","notice",businessId);
    					$.operate.saveSuccess(data);
                        }
                    });
    复制代码

       对于编辑页面上:

           $(function() {
    var businessId = $("#noticeId").val(); $.file.initEditFiles("file-Portrait","file","notice",businessId); });

       自此上传与下载的功能基本实现了!

       

     

    展开全文
  • 图片上传和取消 有框架.zip,diyUpload,diyUpload,css,webuploader.css,diyUpload.css,images,filebg,csv.png,pdf.png,jpg.png,ppt.png,png.png,doc.png,avi.png,zip.png,xls.png,复件 txt.png,mp3.png,txt.png,rar....
  • 多文件上传和展示

    2018-11-15 09:31:56
    bootstrap-fileinput-master多文件上传,多文件预览,网页的代码地址为https://mp.csdn.net/postedit/84098479
  • 今天整理了一个jsp附件上传模块,结合jquery Uploadify插件,可以一次性上传多个附件,而且自带上传进度功能,非常漂亮的界面和强大的功能。 Uploadify插件是由国外开发的一个jquery插件,功能非常的齐全,包括同时...
  • layui多附件上传.rar

    2020-09-11 16:46:36
    layui多附件上传,包含新增 修改页面 新增 修改 删除方法都已测试好,请放心使用,有什么问题请@我
  • 若依框架,前后端分离版本,怎么写上传视频的代码,前端vue,后端springboot 若依框架前后端封装的有上传图片的代码,改造成上传视频的代码,数据库中没有url地址
  • 使用若依上传文件

    千次阅读 2020-06-04 16:16:34
    <div class="text-center"> <p><img ... // 上传并返回新文件名称 String fileName = FileUploadUtils.upload(filePath, file); leader.setHeader(fileName); } return toAjax(leaderService.insertLeader(leader)); }
    <div class="text-center">
                        <p><img class=" img-lg" id="avtarImg"></p>
                        <a href="javascript:void(0)" class="upload-img"> <label for="header">选择头像</label> </a>
                        <input type="file" class="" style="display:none" name="header" id="header" accept="image/*"/>
                    </div>
    

    js代码

    function submitHandler() {
                if ($.validate.form()) {
                    var formData = new FormData();
                    //其他字段内容
                    formData.append('name',$("#name").val());
                    formData.append('mode',$("#mode").val());
                    formData.append('title',$("#title").val());
                    formData.append('remark',$("#remark").val());
                  	//图片文件内容
                    formData.append('file', $('#header')[0].files[0]);
                    $.ajax({
                        url: prefix + "/add",
                        type: 'post',
                        cache: false,
                        data: formData,
                        processData: false,
                        contentType: false,
                        dataType: "json",
                        success: function(result) {
                            $.operate.successCallback(result);
                        }
                    });
                }
    

    controller代码

    	/**
         * 新增信息
         */
        @RequiresPermissions("member:leader:add")
        @Log(title = "信息", businessType = BusinessType.INSERT)
        @PostMapping("/add")
        @ResponseBody
        public AjaxResult addSave(MultipartFile file,Leader leader) throws IOException {
            if (file != null) {
                // 上传文件路径
                String filePath = RuoYiConfig.getUploadPath();
                // 上传并返回新文件名称
                String fileName = FileUploadUtils.upload(filePath, file);
                leader.setHeader(fileName);
            }
            return toAjax(leaderService.insertLeader(leader));
        }
    
    展开全文
  • js上传附件

    2018-08-31 17:11:24
    js编写的上传附件,可限制上传图片数量,上传的图片大小
  • Vue实现附件上传功能

    2020-10-15 06:55:39
    主要为大家详细介绍了Vue实现附件上传功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 附件上传下载demo.zip

    2021-03-01 17:05:19
    很简单单个附件上传下载案例
  • webupload附件上传

    2018-12-14 15:23:10
    webupload附件上传,比较方便的附件上传工具,很实用,下载放在项目即可使用
  • 钉钉附件上传下载的示例代码,分享给需要的朋友! 本示例是用corpsecret和corpid来获取access_token的,现在钉钉接口改成用appKey和appSecret来获取token了,不过方法大同小异,换一下调用接口的地址和参数就可以...
  • 主要为大家详细介绍了使用jquery Ajax实现上传附件功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 引入vue静态js,实现vue附件点击上传和拖拽上传
  • 支持多文件上传、单个/批量附件下载,代码注释详细
  • JS+Jquery+Uploadify实现多附件的上传, 功能如下: 1.允许单、多附件上传; 2.显示上传进度; 3.上传完显示附件列表; 4.对附件列表中附件进行无刷新删除操作(删除数据库存储信息和文件)。
  • 此文档包含了附件上传,以及上传后可以查看附件内容
  • 在springboot+vue框架中使用element的上传控价实现附件上传、下载,并结合openoffice实现附件的在线预览
  • jquery实现多附件上传

    2013-12-30 15:52:02
    jquery实现单附件,多附件上传demo
  • 文件上传附件上传

    2018-05-08 17:09:50
    附件上传,servlet里代码操作,包括远程上传到服务器,处理表单的内容和上传文件。
  • 若依上传下载功能实现

    千次阅读 2021-10-28 08:38:34
    若依代码生成——导入数据库表attachment——编辑——字段:filePath(显示类型选择——上传控件),其他看情况是否要修改。——保存。——点击生成代码——将生成的前后台代码放入idea,重启项目,打开若依页面——...
  • 自己写的一个关于OA签核单内附件上传的一个小功能,可以兼容谷歌与IE两个浏览器,使用ajax返回值判断上传是否成功,并显示在table中
  • 附件上传

    2012-07-29 15:24:55
    单按钮实现多附件上传(非异步,非flash,适用IE8)
  • 通过J2EE开发环境的搭建及使用Spring组件进行开发出的上传附件功能,解决了当前附件上传的问题,而且开发方便快捷,为程序员提供了一种可选择的开发方案,通过详细的开发过程描述,方便掌握该开发方法,有利于程序...
  • C# Winform+devexpress附件管理,附件的添加上传管理功能。
  • 1、内含两个文件:①、UEditorDemo.rar ②、UEdtior的简单使用.doc;...5、最后一点是提示:如果要把UEditor使用在struts中,要重写web.xml中所有过滤.jsp或者.*的过滤器,不然上传图片和文件会失败。
  • 若依分离版文件上传后端逻辑分析

    千次阅读 2021-04-23 09:12:43
    若依已经将文件上传的后端方法封装完毕 com.ruoyi.web.controller.common.CommonController 下uploadFile方法 ![在这里插入图片描述]...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 85,339
精华内容 34,135
关键字:

若依附件上传