后端PHP, 封装文件上传函数
<?php /* * 文件上传函数 */ function upload_single($file, $allow_type, $path, &$error, $allow_format=array(), $max_size=2000000){ //判断文件是否有效 if(!(is_array($file)&&isset($file["error"]))){ $error="上传文件无效"; return false; } //判断保存路径是否有效 if(!is_dir($path)){ $error="路径错误!"; return false; } //判断文件上传过程中是都出错 switch ($file["error"]){ case 1: case 2: $error="文件超出服务器应许大小"; return false; case 3: $error="文件只上传部分"; return false; case 6: case 7: $error="文件保存失败"; return false; } //判断mime类型 if(!in_array($file["type"], $allow_type)){ print_r($file["type"]."<->".$allow_type); $error="当前文件不允许上传12"; return false; } //判断后缀名是否正确 $ext=ltrim(strrchr($file["name"],"."), "."); if(!in_array($ext, $allow_format)&&!empty($allow_format)){ $error="上传文件是不允许上传的后缀名"; return false; } //判断当前文字是否满足这个函数的最大上传值 if($file["size"]>$max_size){ $error="上传文件过大"; return false; } //构建名字:随机构造 $full_name=strstr($file["type"], "/").date("YYYYmmdd"); for($i=0;$i<4;++$i){ $full_name.=chr(mt_rand(65,90)); } //拼凑后缀 $full_name.='.'.$ext; //移动到指定目录 if(!is_uploaded_file($file["tmp_name"])){ $error="错误, 不是上传文件"; return false; } if(move_uploaded_file($file["tmp_name"], $path.'/'.$full_name)){ return $full_name; }else{ $error="文件移动失败"; return false; } } //提供数据 $file=$_FILES["image"]; $path="image/"; $allow_format=array("JPG", "JPEG"); $allow_type=array("image/jpeg", "/image/jpg"); $max_size=80000000; $error; if(upload_single($file, $allow_type, $path, $error, $allow_format, $max_size)){ echo "上传成功!"; }else{ echo $error; }
作者:ALINGMAOMAO
出处:https://www.cnblogs.com/ALINGMAOMAO/p/11253037.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探