多文件上传并预览

        <div id="file" style="display:none;">
                <form action="javascript:void(0);" method="post" enctype="multipart/form-data">
                <span style="font-size: 16px;">文件:</span>
                <input type="file" name="file" id="picorvideo" style="width:180px;height:28px;" multiple οnchange="getImgUrl(this);"/><br/>
                </form>
                <div id="dfile" style="margin-top: 20px;margin-bottom: 20px;"></div>
        </div>

function getImgUrl(node) { 
   
    var fobj = node.files;
    $('#dfile').html('');
    for(var i=0;i<fobj.length;i++){
        var fname = fobj[i].name;
        var fileType = fname.substr(fname.lastIndexOf('.')+1);
        if(fileType == 'jpg' || fileType == 'jpeg' || fileType == 'png' || fileType == 'gif'){
            if(node.files.length>9){
                alert('最多支持9张图片');
                return false;
                }
        }else if(fileType == 'mpg' || fileType == 'm4v' || fileType == 'mp4' || fileType == 'flv' || fileType == '3gp' || fileType == 'mov' || fileType == 'avi' || fileType == 'rmvb' || fileType == 'mkv' || fileType == 'wmv'){
                if(node.files.length>1){
                alert('最多支持一个视频');
                return false;
                }
        }else{
            alert('不支持该文件类型');
            return false;
        }
    }
    var imgURL = ""; 
    
    for(var i=0;i<node.files.length;i++){
    try{     
        var file = null;  
        if(node.files && node.files[0] ){ 
            
                file = node.files[i];  
        }else if(node.files && node.files.item(0)) {                                  
            file = node.files.item(i);     
        }     
       
        try{  
           
            imgURL =  file.getAsDataURL();    
        }catch(e){  
                                          
            imgRUL = window.URL.createObjectURL(file);  
        }  
       
     }catch(e){                
        
        if (node.files && node.files[0]) {                            
            var reader = new FileReader();   
            reader.onload = function (e) {                                        
                imgURL = e.target.result;    
            };  
            reader.readAsDataURL(node.files[i]);   
        }    
     }
    if(fileType == 'jpg' || fileType == 'jpeg' || fileType == 'png' || fileType == 'gif'){
        creatImg(imgRUL);  
    }else{
        createVideo(file);
    }
     } 
}  
         
function creatImg(imgRUL){
    
    var textHtml = '';
    textHtml = "<img src='"+imgRUL+"' height='50' width='50' style='border:1px solid black;margin-left:5px;margin-top:5px;margin-bottom:5px;' οnmοuseenter='enterImg(this);'/>";
    $('#dfile').css('border','1px solid #000');
    
    $('#dfile').append(textHtml);  
}

function createVideo(file){
            alert('视频上传中,请稍等');
            var formData = new FormData();
            formData.append('file',file);
            $.ajax({
                url:'guide/addVideo.do',
                data:formData,
                type:'POST',
                async:false,
                cache:false,
                contentType:false,
                processData:false,
                success:function(data){
                    var textHtml = '';
                    textHtml = "<video src='http://118.190.172.70:80/network/pages/images/pic/"+data.filePath+"' controls='controls' style='margin-left:5px;margin-top:5px;height:350px;width:600px;'></video>";
                    $('#dfile').css('border','1px solid #000');
                    $('#dfile').html('');
                    $('#dfile').append(textHtml);  
                },error:function(){
                    alert('视频上传失败');
                }
            
            });

}
function enterImg(doc){
    doc.style.width='200';
    doc.style.height='120';
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在element中,可以使用el-upload组件上传文件,并且可以配合el-dialog组件实现文件预览功能。 具体步骤如下: 1. 安装element-ui组件库 ``` npm install element-ui --save ``` 2. 在需要使用上传组件的页面引入el-upload组件和el-dialog组件 ``` import { ElUpload, ElDialog } from 'element-ui' ``` 3. 在页面中使用el-upload组件 ```html <template> <el-upload class="upload-demo" action="your-upload-api-url" :on-success="handleSuccess"> <el-button size="small" type="primary">点击上传</el-button> </el-upload> </template> <script> export default { methods: { handleSuccess(response, file, fileList) { // 处理上传成功后的回调 } } } </script> ``` 4. 在handleSuccess方法中处理上传成功后的回调,将上传成功的文件信息保存到data中 ```javascript handleSuccess(response, file, fileList) { this.fileList = fileList } ``` 5. 点击文件名,弹出el-dialog组件,显示文件预览窗口 ```html <template> <div> <el-upload class="upload-demo" action="your-upload-api-url" :on-success="handleSuccess"> <el-button size="small" type="primary">点击上传</el-button> </el-upload> <el-dialog :visible.sync="dialogVisible" width="30%"> <embed :src="previewUrl" type="application/pdf" width="100%" height="600px" /> </el-dialog> </div> </template> <script> export default { data() { return { fileList: [], dialogVisible: false, previewUrl: '' } }, methods: { handleSuccess(response, file, fileList) { this.fileList = fileList }, handlePreview(file) { // 点击文件名,打开预览窗口 this.previewUrl = URL.createObjectURL(file.raw) this.dialogVisible = true } } } </script> ``` 在以上代码中,我们使用了<embed>标签来展示PDF文件,你可以根据需要替换为其他类型的文件预览组件。同时,我们使用了URL.createObjectURL方法来生成文件预览URL,这个方法会返回一个Blob URL,可以直接用于文件预览
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值