php发展

首页 » 常识 » 常识 » php专题讲解之文件过滤和文件上传中原
TUhjnbcbe - 2022/12/2 20:58:00
QQ客服网络客服求职招聘QQ群 http://www.cgia.cn/news/chuangyi/1590174.html

我们都知道,在一般的小程序app里面,需要上传某些文件、照片以及视频等等。那么这些东西通过php是如何实现的呢?

今天我们就通过实例的方式来聊聊服务器端的实现过程。

首先,需要获取文件的扩展名,将文件扩展名统一转化为小写字符。具体代码如下:

publicfunctiongetFileExt(fileName){ext_names=explode(.,fileName);ext_name=strtolower(ext_names[count(ext_names)-1]);returnext_name;}

其次,根据扩展名获取文件类型,比如如果后缀民为jpg、jpeg、png等后缀,则为图片,如果后缀为为mp4、avi、mov等,则表示为视频;如果后缀为txt、doc、docx、xls等,则表示为文件格式。

publicfunctiongetFileType(ext_name){if(in_array(ext_name,[jpg,jpeg,png,tif,gif,bmp])){returnimage;}elseif(in_array(ext_name,[mp4,avi,mov,wmv,rm,rmvb])){returnvideo;}elseif(in_array(ext_name,[mp3,amr,aac,m4a])){returnaudio;}elseif(in_array(ext_name,[pdf,doc,docx,xls,xlsx,ppt,pptx,txt])){returndocument;}}

对于格内文件的上传,这里有大小限制,上传的文件不能为空,最大不能超过M,对于那些不再文件内省范围内的文件,则直接抛出提示——未知的文件。具体的代码实现如下:

publicfunctionactionUpload(){if(empty(_FILES)){thrownew\yii\web\HttpException(,请上传附件);}urls=[];foreach(_FILESasfile){if(empty(file[name])){thrownew\yii\web\HttpException(,文件名不能为空);}if(file[size]**){thrownew\yii\web\HttpException(,文件大小不能大于MB);}fileName=file[name];fileExt=this-getFileExt(fileName);fileType=this-getFileType(fileExt);if(!fileType){thrownew\yii\web\HttpException(,不支持的文件类型);}sha1=

sha1_file(file[tmp_name]);saveName=sha1...fileExt;dbFile=Attachment::find()-where([sha1=sha1])-one();if(empty(dbFile)

!is_file(this-path.saveName)){if(!move_uploaded_file(file[tmp_name],this-path.saveName)){thrownew\yii\web\HttpException(,文件上传失败);}}filesize=

filesize(this-path.saveName);data=[uploader=\Yii::app-user-identity-id,sha1=sha1,origin_name=fileName,filesize=filesize?filesize:0,save_name=saveName,url=this-cdn.saveName];if(empty(dbFile)){dbFile=newAttachment();if(fileType==image){//image_png_size_add(this-path.saveName,,null,false);}elseif(fileType==video){videoResult=(newQCloud())-uploadVideo(this-path.saveName);data[url]=videoResult-MediaUrl;data[ext_id]=videoResult-FileId;data[cover_url]=this-captureCoverUrl(this-path,saveName);}}

1
查看完整版本: php专题讲解之文件过滤和文件上传中原