php上传函数怎么封装?
<?php //上传文件调用 $file = $_FILES['image']; //允许上传的类型 $allow = array('image/jpeg', 'image/png', 'image/jpg', 'image/gif'); $path = './uploads'; $maxsize = 1024 * 1024 * 3; $result = upload($file, $allow, $error, $path, $maxsize); if ($result) { //上传成功 echo "文件上传成功,新的文件名叫".$result; }else{ //上传失败 echo $error; } /** *文件的上传 *@param array $file 上传的文件的相关信息(是一个数组有五个元素) *@param array $allow 允许文件上传的类型 *@param string & $error 引用传递,用来记录错误的信息 *@param string $path 文件上传的目录,不带最后的 / *@param int $maxsize = 1024*1024 允许上传的文件大小 *@return mixed false | $newname 如果上传失败返回false,成功返回文件的新名字 **/ function upload($file, $allow, &$error, $path, $maxsize =1048576){ //先判断系统错误 switch ($file['error']) { case 1: $error = '上传错误,超出了服务器文件限制的大小!'; return false; case 2: $error = '上传错误,超出了浏览器表单允许的大小!'; return false; case 3: $error = '上传错误,文件上传不完整!'; return false; case 4: $error = '上传错误,请您先选择要上传的文件!'; return false; case 6: case 7: $error = '对不起,服务器繁忙,请稍后再试!'; return false; } //判断逻辑错误 //验证文件的大小 if ($file['size'] > $maxsize) { //超出用户了自己规定的大小 $error = '上传错误,超出了文件限制的大小!'; return false; } //判断文件的类型 if (!in_array($file['type'], $allow)) { //非法的文件类型 $error = '上传的文件的类型不正确,允许的类型有:'.implode(',', $allow); return false; } //移动临时文件 //指定文件上传后保存的路径 $newname = randName($file['name']); //得到文件新的名字 //判断$path 目录是否存在 不存在则创建 if (!file_exists($path)) { mkdir($path, 0777, true); } $target = $path . '/' . $newname; $result = move_uploaded_file($file['tmp_name'], $target); if ($result) { //上传成功 return $newname; }else{ //上传失败 $error = '发生未知错误,上传失败'; return false; } } /** *生成一个随机名字的函数 文件名=当前的时间 + 随机的几位数字 *@param string $filename 文件的原始名字 *@return string $newname 文件的新名字 * */ function randName($filename){ //生成文件名的时间部分 $newname = date('YmdHis'); //加上随机的6位数 $str = '0123456789'; for ($i=0; $i < 6; $i++) { $newname .= $str[mt_rand(0, strlen($str)-1)]; } //加上文件的后缀名 $newname .= strrchr($filename, '.'); return $newname; }
HTML上传代码
<!DOCTYPE html> <html> <head> <title>文件上传</title> <meta charset="utf-8"> </head> <body> <form method="post" action="upload.php" enctype="multipart/form-data"> <input type="file" name="image"> <input type="submit" name="" value="上传"> </form> </body> </html>
推荐:《PHP教程》
以上是php上传函数怎么封装的详细内容。更多信息请关注PHP中文网其他相关文章!

本文比较了酸和基本数据库模型,详细介绍了它们的特征和适当的用例。酸优先确定数据完整性和一致性,适合财务和电子商务应用程序,而基础则侧重于可用性和

本文讨论了确保PHP文件上传的确保,以防止诸如代码注入之类的漏洞。它专注于文件类型验证,安全存储和错误处理以增强应用程序安全性。

本文讨论了在PHP中实施API速率限制的策略,包括诸如令牌桶和漏水桶等算法,以及使用Symfony/Rate-limimiter之类的库。它还涵盖监视,动态调整速率限制和手

本文讨论了使用password_hash和pyspasswify在PHP中使用密码的好处。主要论点是,这些功能通过自动盐,强大的哈希算法和SECH来增强密码保护

本文讨论了OWASP在PHP和缓解策略中的十大漏洞。关键问题包括注射,验证损坏和XSS,并提供用于监视和保护PHP应用程序的推荐工具。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)