拖拽或点击上传(支持苹果safari浏览器)

这篇博客介绍了如何在不支持拖拽功能的Safari浏览器中实现拖拽或点击上传文件。通过JavaScript监听拖拽事件,结合CSS美化上传区域,提供了一种在jsp页面上实现拖拽和点击上传文件的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<input type="file" value="上传">  拖拽或点击上传(在safari浏览器不支持拖拽),主要解决safari浏览器的拖拽问题

jsp页面

                    <input type="file" id="frontImg" name="myfiles"  style="display:none;">  
                      <div class="seam-upload" id="upload">
                          <img id="upload" src="${path }/image/product/seam-upload.png">
                          <h4 id="addproduct">点击添加产品</h4>
                      </div>

css美化拖拽或点击上传区域

.seam-upload {width: 200px; height: 300px; background: rgba(0,152,221,1); box-shadow: 0px 5px 8px 0px rgba(0, 0, 0, 0.44); border-radius: 6px; text-align: center; float: left; margin-right: 21px; margin-bottom: 50px;

}

seam-upload h4 { font-size: 18px; font-family: MicrosoftYaHeiLight; font-weight: 300; color: rgba(255,255,255,1);}

js功能实现

<script type="text/javascript">

//监听拖拽事件

document.addEventListener("drop",function(e){  //拖离   
    e.preventDefault();      
})  
document.addEventListener("dragleave",function(e){  //拖后放   
    e.preventDefault();      
})  
document.addEventListener("dragenter",function(e){  //拖进  
    e.preventDefault();      
})  
document.addEventListener("dragover",function(e){  //拖来拖去    
    e.preventDefault();      
})

/* 拖拽上传 */
     var box = document.getElementById('upload'); //拖拽区域     
     box.addEventListener("drop",function(e){           
         var fileList = e.dataTransfer.files; //获取文件对象    
         ajaxFileUpload(fileList);//将文件上传
     });

 /*点击转移,确保拖拽的文件和点击的文件是同一部分*/
     $("#upload").click(function(){
         return $("#frontImg").click();
    }); 

 $("#frontImg").on("change",function (e) {
           var e = e || window.event;
           //获取 文件 个数 取消的时候使用
           var fileList = e.target.files;
           if(files.length>0){
               // 获取文件名 并显示文件名
               ajaxFileUpload(fileList );
           }else{
               //清空文件名
               $("#frontImg").val("");
           }
        });

/*上传方法,根据需要上传*/

function ajaxFileUpload(obj) {

 

}

</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值