怎样用html5实现拖拽上传文件

怎样用html5实现拖拽上传文件,第1张

,首先要判断拖入的文件是否符合要求,包括图片类型、大小等,然后获取本地图片信息,实现预览,最后上传。

$(function(){

...接上部分

var box = document.getElementById('drop_area')//拖拽区域

box.addEventListener("drop",function(e){

e.preventDefault()//取消默认浏览器拖拽效果

var fileList = e.dataTransfer.files//获取文件对象

//检测是否是拖拽文件到页面的 *** 作

if(fileList.length == 0){

return false

}

//检测文件是不是图片

if(fileList[0].type.indexOf('image') === -1){

alert("您拖的不是图片!")

return false

}

//拖拉图片到浏览器,可以实现预览功能

var img = window.webkitURL.createObjectURL(fileList[0])

var filename = fileList[0].name//图片名称

var filesize = Math.floor((fileList[0].size)/1024)

if(filesize>500){

alert("上传大小不能超过500K.")

return false

}

var str = "<img src='"+img+"'><p>图片名称:"+filename+"</p><p>大小:"+filesize+"KB</p>"

$("#preview").html(str)

//上传

xhr = new XMLHttpRequest()

xhr.open("post", "upload.php", true)

xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest")

var fd = new FormData()

fd.append('mypic', fileList[0])

xhr.send(fd)

},false)

})

微信公众平台本身没有这个存储空间,所以就需要有个服务器或者第三方托管来承载制作好的html5页面;1.通常微信都有第三方合作平台,直接调用第三方接口,然后将html5和页面素材统一打包上传到第三方服务端。2.倘若有服务器空间,则直接将html5打包放在网站根目录文件下,在微信端直接调用服务器端的地址即可;3.可以在微信平台通过文字或链接跳转的形式,实现html5页面的转换。

不需要后端的,前端自己判断,代码如下:

function uploadFile(){

// 获取上传文件,放到 formData对象里面

var pic = $("#myhead").get(0).files[0]

var formData = new FormData()

formData.append("file" , pic)

$.ajax({

type: "POST",

url: "upload",

data: formData ,//这里上传的数据使用了formData 对象

processData : false,

//必须false才会自动加上正确的Content-Type

contentType : false ,

//这里我们先拿到jQuery产生的 XMLHttpRequest对象,为其增加 progress 事件绑定,然后再返回交给ajax使用

xhr: function(){

var xhr = $.ajaxSettings.xhr()

if(onprogress &&xhr.upload) {

xhr.upload.addEventListener("progress" , onprogress, false)

return xhr

}

}

})


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6139491.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存