elementUI vue upload完整示例

elementUI 和vue 还有axios +java的完整示例, 代码敲了很久, 累死了, 以后用就直接复制了 ,很值吧!!!

1.html

<!DOCTYPE html>
<html >
<head>
    <meta charset="UTF-8">
    <title>导入</title>
    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
</head>
<body>
<div id="myUpload">
<el-button type="primary" size="mini" @click="uploadFile">导入</el-button>
<!--上传-->
<el-dialog title="上传" width="40%" :visible.sync="uploadTemplateDialog">
    <el-row>
        <el-col :span="22">
            <el-upload class="upload-demo"
                       ref="upload"
                       action=""
                       :accept="acceptFileType"
                       :limit="1"
                       :on-exceed="handleExceed"
                       :before-upload="beforeUpload"
                       :on-preview="handlePreview"
                       :on-remove="handleRemove"
                       :file-list="fileList"
                       :auto-upload="false">
                <el-button slot="trigger" size="small" type="primary">选取Excel格式文件</el-button>
                <div slot="tip" class="el-upload_tip">只能上传.xls文件,且不超过1M</div>
            </el-upload>

        </el-col>
    </el-row>
    <span slot="footer" class="dialog-footer">
        <el-button @click="submitUpload" type="primary" size="mini" :loading="uploadLoading" > 确定上传</el-button>
        <el-button @click="uploadTemplateDialog=false" size="mini">取消</el-button>
    </span>

</el-dialog>

</div>

<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script src="https://unpkg.com/element-ui@2.6.1/lib/index.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script >
    new Vue({
        el:‘#myUpload‘,
        data:function(){
            return{
                uploadTemplateDialog:false,
                fileList:[],
                uploadLoading:false,
                acceptFileType:‘.xls‘,
                downLoadLoading:‘‘,
            }
        },
        //钩子函数,页面加载执行
        created:function(){

        },
        //钩子函数,页面加载完成后执行
        mounted(){

        },
        //函数方法
        methods:{
            uploadFile(){
                this.uploadLoading=false;
                var that=this;
                this.fileList=[];
                this.uploadTemplateDialog=true;
                setTimeout(function(){
                    that.$refs.upload.clearFiles();
                },100);
            },
            handleExceed(files,fileList){
                this.$message.warning(‘只能选择1个文件!‘);
            },
            submitUpload(){
                this.uploadLoading=true;
                var that=this;
                setTimeout(function () {
                    if(that.$refs.upload.$children[0].fileList.length==1){
                        that.$refs.upload.submit();
                    }else{
                        that.uploadLoading=false;
                        that.$message({
                            type:‘error‘,
                            showClose:true,
                            duration:3000,
                            message:‘请选择文件!‘
                        });
                    };
                },100);
            },
            handleRemove(file,fileList){
                //console.log(file,fileList);
            },
            handlePreview(file){
                //console.log(file);
            },
            beforeUpload(file){
                var that=this;
                //文件类型
                var fileName=file.name.substring(file.name.lastIndexOf(‘.‘)+1);
                if(fileName!=‘xls‘){
                    that.uploadTemplateDialog=false;
                    that.$message({
                        type:‘error‘,
                        showClose:true,
                        duration:3000,
                        message:‘文件类型不是.xls文件!‘
                    });
                    return false;
                }
                //读取文件大小
                var fileSize=file.size;
                console.log(fileSize);
                if(fileSize>1048576){
                    that.uploadTemplateDialog=false;
                    that.$message({
                        type:‘error‘,
                        showClose:true,
                        duration:3000,
                        message:‘文件大于1M!‘
                    });
                    return false;
                }
                that.downloadLoading=that.$loading({
                    lock:true,
                    text:‘数据导入中...‘,
                    spinner:‘el-icon-loading‘,
                    background:‘rgba(0,0,0,0.7)‘
                });
                let fd=new FormData();
                fd.append(‘file‘,file);
                fd.append(‘_t1‘,new Date());
                axios({
                    method:‘post‘,
                    url:‘/upload/‘+new Date().getTime(),
                    data:fd,
                    headers:{"Content-Type":"multipart/form-data;boundary="+new Date().getTime()}
                }).then(rsp=>{
                    that.downloadLoading.close();
                    that.uploadLoading=false;
                    let resp=rsp.data
                    if(resp.resultCode==200){
                        that.uploadTemplateDialog=false;
                        that.$message.success(resp.resultMsg);
                        //that.queryData();//更新数据
                    }else{
                        that.uploadTemplateDialog=false;
                        that.$message({
                            type:‘error‘,
                            showClose:true,
                            duration:60000,
                            message:resp.resultMsg
                        });
                    }
                }).catch(error=> {
                    that.downloadLoading.close();
                    that.uploadLoading=false;
                    that.uploadTemplateDialog=false;
                    that.$message({
                        type:‘error‘,
                        showClose:true,
                        duration:60000,
                        message:‘请求失败! error:‘+error
                    });
                })
                return false;
            }
        }
    })
</script>
</body>
</html>

2.java

@RequestMapping(value="/upload/{time}",method={RequestMethod.POST})
@ResponseBody
public HttpResult upload(@PathVariable("time") String time,@RequestParam("file") MultipartFile file,HttpServlet request){
        String fileName=file.getOriginalFilename();
        String prefix=fileName.substring(filename.lastIndexOf(".")+1); // 后缀: "xls"
        String path=request.getServletContext().getRealPath(File.separator+"myFile");
        String date=String.valueOf(new Date().getTime());
        if(!new File(path).exists()){
            new File(path).mkdir();
        }
        File file2=new File(path+File.separator+date+"_"+fileName);
        file.transferTo(files);
        return HttpResult.ok();
}

3.效果图

效果图还是不错的吧, 后台java 我就截取了一段代码, 大家可以自己发挥, 前端基本都完整了, 可以完全套用, 大家给个意见吧!!!

原文地址:https://www.cnblogs.com/yysbolg/p/10516144.html

时间: 2024-10-06 12:01:45

elementUI vue upload完整示例的相关文章

asp.net mvc5 使用百度ueditor 本编辑器完整示例(下)配置上传播放视频

通过 asp.net mvc5 使用百度ueditor 本编辑器完整示例(上)介绍,可以上传图片到服务器了,也可以上传小的视频文件,并且由百度编辑器自动加入html5<video>标签播放视频. 但是,遇到大文件上传,会点不动,会无法上传. 一.修改百度编辑器的ueditor/net 文件夹下config.json .修改上传视频 最大值512M ,上传文件配置:1024M; /* 上传视频配置 */ "videoActionName": "uploadvideo

WCF服务开发与调用的完整示例

开发工具:VS2008 开发语言:C# 开发内容:简单的权限管理系统 第一步.建立WCF服务库 点击确定,将建立一个WCF 服务库示例程序,自动生成一个包括IService1.cs和Service1.cs两个类文件.我们可以直接对其修改开发我们的服务,但一般直接删除. 第二步:开发实体类 在解决方案中,添加新类Module.cs 在类中要首先引入using System.Runtime.Serialization命名空间 实体类具体代码如下: namespace WcfServiceLib.mo

Android清理设备内存详细完整示例(一)

MainActivity如下: package come.on; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; i

无刷新分页代码,jQuery分页完整示例

<!DOCTYPE html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>jQuery分页演示效果</title><script type="text/javascript" src="/ajaxjs/jquery1.3.2.js">&l

Android清理设备内存详细完整示例(二)

MainActivity如下: package cc.c; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.List; import android.app.Activity; import android.app.ActivityManager; import android.app.ActivityManager.MemoryInfo;

Android图片旋转,缩放,位移,倾斜,对称完整示例(二)——Bitmap.createBitmap()和Matrix

MainActivity如下: package cc.c; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Matrix; import android.graphics.drawable.BitmapDrawable; import android.os.Bundle; import android.widget.ImageView; /** * Demo描述: * 利用B

Android图片旋转,缩放,位移,倾斜,对称完整示例(一)——imageView.setImageMatrix(matrix)和Matrix

MainActivity如下: import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.ImageView; import android.app.Activity; import android.graphics.Matrix; /** * Demo描述:

转:WCF服务开发与调用的完整示例

转:http://blog.csdn.net/fxhflower/article/details/7274925 WCF服务开发与调用的完整示例 开发工具:VS2008 开发语言:C# 开发内容:简单的权限管理系统 第一步.建立WCF服务库 点击确定,将建立一个WCF 服务库示例程序,自动生成一个包括IService1.cs和Service1.cs两个类文件.我们可以直接对其修改开发我们的服务,但一般直接删除. 第二步:开发实体类 在解决方案中,添加新类Module.cs 在类中要首先引入usi

C连接MySQL数据库开发之Linux环境完整示例演示(增、删、改、查)

一.开发环境 ReadHat6.3 32位.mysql5.6.15.gcc4.4.6 二.编译 gcc -I/usr/include/mysql -L/usr/lib -lmysqlclient main.c -o main.out -I:指定mysql头文件所在目录(默认去/usr/include目录下寻找所用到的头文件) -L:指定mysql动态库文件所在目录(默认从/usr/lib目录查找) -l:链接libmysqlclient.so动态库 -o:生成的可执行文件名 三.完整示例 //