skymvc开发手册之skymvc类库之文件上传
查看视频教程或者获取有关《skymvc开发手册》更多信息

skymvc教学课程


第9课 skymvc类库之文件上传


/**********

*大家好,这节课给大家讲讲文件上传的实现。

*文件上传是个简单也是个麻烦的事

*安全提示:上传目录禁止执行权限

*框架没法保证百分百安全

cls_upload

*/




一般上传

<form method="post" action="/index.php?m=upload&a=upload" enctype="multipart/form-data">
    <div class="row">
    <div class="btn-upload">
        <i class="iconfont icon-upload"></i>
            上传文件
        <div class="btn-upload-file">
             <input type="file" name="upimg">
             </div>
        </div>
    </div>
    <div class="row">
    <input type="submit" class="btn" value="上传">
    </div>
    </form>
<?php
$this->loadClass("upload");
$data=$this->upload->uploadfile("upimg");
print_r($data);
?>

ajax上传 我们使用html上传 skyupload.js


单文件上传

<input type="file" id="upimg" name="upimg" >

多文件上传 html5实现多文件上传也很简单

<input type="file" id="upimg" name="upimg" multiple>

upload.ctrl.php

<?php
class uploadControl extends skymvc{
	
	public function __construct(){
		parent::__construct();
	}
	
	public function onDefault(){
		
		$this->smarty->display("upload/default.html");
	}
	
	public function onUpload(){
		if(!$this->get_session("ssuser")){
			exit(json_encode(array("err"=>"请先登录",1))); 
		}
		$this->loadClass("upload");
		//上传的文件目录
		$this->upload->uploaddir="attach/my/";
		//允许上传的文件大小
		$this->upload->maxsize=4194304000;
		//是否上传图片
		$this->upload->upimg=true;
		//设置允许上传的文件类型
		$this->upload->sysallowtype=array('gif','jpg','bmp','png','jpeg','txt','mpeg','avi','rm','rmvb','wmv','flv','mp3','wav','wma','swf','doc','pdf','zip','tar','svg');
		$this->upload->allowtype=$this->upload->sysallowtype;
		//根据Id存储
		$this->upload->iddir=0;
		$data=$this->upload->uploadfile("upimg");
		//print_r($data);
		echo json_encode($data);	
		
	}
	
	
	
}

?>


skyupload.js

function skyUpload(upid,url,success,error,uploadProgress)
{
		 var vFD = new FormData();
		 var f= document.getElementById(upid).files;
		 $("#"+upid+"loading").show();
		 for(var i=0;i<f.length;i++){ 
			vFD.append('upimg', document.getElementById(upid).files[i]);
			var oXHR = new XMLHttpRequest();        
			oXHR.addEventListener('load', success, false);
			oXHR.addEventListener('error', error, false);
			if(uploadProgress!=undefined){
				oXHR.upload.addEventListener("progress", uploadProgress, false);
			}
			oXHR.open('POST',url);
			oXHR.send(vFD);
	
		 }
}

/*
function uploadFinish(e){
		var data=eval("("+e.target.responseText+")");
		$("#uploading").hide()
		if(data.error != '')
        {
           skyToast(data.msg);
        }else
        {
            $("#imgShow").html("<img src='/"+data.imgurl+".100x100.jpg' width='100'>");
			$("#imgurl").val(data.imgurl);
         }
}
	
function uploadError(e) { // upload error
		skyToast("上传出错了");
}
*/