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("上传出错了");
}
*/