IE8如何支持多文件上传

IE8如何支持多文件上传,第1张

在HTML5中,表单元素有一个新的属性multiple,可实现多选功能。

<input type="file" multiple>

这样就可以实现多文件上传,但是此方法不兼容ie8等低版本浏览器。所以项目中我使用的是百度的WebUpload插件,此插件在ie中底层使用flash实现多文件上传

以下代码是简单的demo,具体使用方法可依据官方文档。

<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"><title></title><link rel="stylesheet" href="webuploader.css"/></head><body><div id="uploader" class="wu-example"><!--用来存放文件信息--><div id="thelist" class="uploader-list"></div><div class="btns"><div id="picker">选择文件</div><button id="ctlBtn" class="btn btn-default">开始上传</button></div></div><script src="jquery-1.8.3.min.js"></script><script src="webuploader.js"></script><script>var uploader = WebUploader.create({// swf文件路径swf: 'Uploader.swf',// 文件接收服务端。server: 'http://webuploader.duapp.com/server/fileupload.php',// 选择文件的按钮。可选。// 内部根据当前运行是创建,可能是input元素,也可能是flash.pick: '#picker',// 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!resize: false,//去重duplicate: true,//限制文件大小fileSingleSizeLimit: 50000,//单位(字节B)//可上传文件的类型accept: {extensions: 'docx,doc,xls,xlsx,ppt,pptx,wps,et,txt,ole,pdf,ceb,jpg,jpeg,bmp,png,rar,zip,caj'}})// 当有文件被添加进队列的时候uploader.on( 'fileQueued', function( file ) {$("#thelist").append( '<div id="' + file.id + '" class="item">' +'<h4 class="info">' + file.name + '</h4>' +'<p class="state">等待上传...</p>' +'</div>' )})// 文件上传过程中创建进度条实时显示。uploader.on( 'uploadProgress', function( file, percentage ) {var $li = $( '#'+file.id ),$percent = $li.find('.progress .progress-bar')// 避免重复创建if ( !$percent.length ) {$percent = $('<div class="progress progress-striped active">' +'<div class="progress-bar" role="progressbar" style="width: 0%">' +'</div>' +'</div>').appendTo( $li ).find('.progress-bar')}$li.find('p.state').text('上传中')$percent.css( 'width', percentage * 100 + '%' )})uploader.on( 'uploadSuccess', function( file ) {$( '#'+file.id ).find('p.state').text('已上传')})uploader.on( 'uploadError', function( file ) {$( '#'+file.id ).find('p.state').text('上传出错')})uploader.on( 'uploadComplete', function( file ) {$( '#'+file.id ).find('.progress').fadeOut()})$("#ctlBtn").bind('click', function() {//向服务器端传递的参数uploader.options.formData = {"uuid": "234124"}uploader.upload()})</script></body></html>

//js

$(function () {

//文件上传地址

//var url = 'http://localhost/index.php/upload/do_upload'

var url = 'http://localhost/index.php/uploadwe'

//初始化,主要是设置上传参数,以及事件处理方法(回调函数)

$('#fileupload').fileupload({

autoUpload: true,//是否自动上传

//url: url,//上传地址

dataType: 'json',

done: function (e, data) {//设置文件上传完毕事件的回调函数

//$.each(data.result.files, function (index, file) {

$("#myimg").attr({src:data.result.imgurl})

$("#myimg").css({width:"290px",height:"218px"})

//alert(data.result)

},

progressall: function (e, data) {//设置上传进度事件的回调函数

var progress = parseInt(data.loaded / data.total * 5, 10)

$('#progress .bar').css(

'width',

progress + '%'

)

}

})

}) 

//上传至服务后,服务器返回json数据--上传图片的地址。

//html

<label for="text">上传图片</label>

<input id="fileupload" type="file" name="files" data-url="<span style="color:#ff6666">jquery_save_img</span>" multiple>

//data-url为上传至服务器端的处理接口/地址,可替换js中的url

//服务器端

function jquery_save_img()  

    {  

        $arrType=array('image/jpg','image/gif','image/png','image/bmp','image/pjpeg','image/jpeg')  

        $max_size='500000000000'      // 最大文件限制(单位:byte)  

        $upfile='./uploads' //图片目录路径  

        $file=$_FILES['files']  

  

        /* 

        echo 'filename:'.$file['tmp_name'].'<br />' 

        echo 'size:'.$file['size'].'<br />' 

        echo 'type:'.$file['type'].'<br />' 

        echo 'name:'.$file['name'].'<br />' 

        */  

          

        if($_SERVER['REQUEST_METHOD']=='POST'){ //判断提交方式是否为POST  

            if(!is_uploaded_file($file['tmp_name'])){ //判断上传文件是否存在  

                echo "<font color='#FF0000'>文件不存在!</font>"  

                exit  

            }  

  

            if($file['size']>$max_size){  //判断文件大小是否大于500000字节  

                echo "<font color='#FF0000'>上传文件太大!</font>"  

                exit  

            }   

            if(!in_array($file['type'],$arrType)){  //判断图片文件的格式  

                echo "<font color='#FF0000'>上传文件格式不对!</font>xxx:".$file['type']  

                exit  

            }  

            if(!file_exists($upfile)){  // 判断存放文件目录是否存在  

                mkdir($upfile,0777,true)  

            }   

            $imageSize=getimagesize($file['tmp_name'])  

            $img=$imageSize[0].'*'.$imageSize[1]  

            $fname=$file['name']  

            $ftype=explode('.',$fname)  

            $picName=$upfile."/cloudy".$fname  

  

            if(file_exists($picName)){  

                //echo "<font color='#FF0000'>同文件名已存在!</font>"  

                //exit  

            }  

            if(!move_uploaded_file($file['tmp_name'],$picName)){    

                echo "<font color='#FF0000'>移动文件出错!</font>"  

                exit  

            }  

            else{  

            /* 

                echo "<font color='#FF0000'>图片文件上传成功!</font><br/>" 

                echo "<font color='#0000FF'>图片大小:$img</font><br/>" 

                echo "图片预览:<br><div style='border:#F00 1px solid width:200pxheight:200px'> 

                <img src=\"".$picName."\" width=200px height=200px>".$fname."</div>" 

            */  

                echo '{"imgurl":"http://localhost/uploads/cloudy'.$fname.'"}'  

            }  

        }  

      

    }


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

原文地址: http://outofmemory.cn/tougao/12048893.html

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

发表评论

登录后才能评论

评论列表(0条)

保存