代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
PHP
】
兼容IE,火狐的上传类,包括缩图生成和使用例子
作者:
Dezai.CN
/ 发布于
2013/10/22
/
537
<?php class ieb_upload { var $FormName; //文件域名称 var $Directroy; //上传至目录 var $MaxSize; //最大上传大小 var $CanUpload; //是否可以上传 var $doUpFile; //上传的文件名 var $sm_File; //缩略图名称 var $Error; //错误参数 function ieb_upload($formName = '', $dirPath = '', $maxSize = 2097152) // (1024*2)*1024=2097152 就是 2M { global $FormName, $Directroy, $MaxSize, $CanUpload, $Error, $doUpFile, $sm_File; // 初始化各种参数 $FormName = $formName; $MaxSize = $maxSize; $CanUpload = true; $doUpFile = ''; $sm_File = ''; $Error = 0; if ($formName == '') { $CanUpload = false; $Error = 1; break; } if ($dirPath == '') $Directroy = $dirPath; else $Directroy = $dirPath.'/'; } // 检查文件是否存在 function scanFile() { global $FormName, $Error, $CanUpload; if ($CanUpload) { $scan = is_readable($_FILES[$FormName]['name']); if ($scan) $Error = 2; return $scan; } } // 获取文件大小 function getSize($format = 'B') { global $FormName, $Error, $CanUpload; if ($CanUpload) { if ($_FILES[$FormName]['size'] == 0) { $Error = 3; $CanUpload = false; } switch ($format) { case 'B': return $_FILES[$FormName]['size']; break; case 'K': return ($_FILES[$FormName]['size']) / (1024); break; case 'M': return ($_FILES[$FormName]['size']) / (1024 * 1024); break; } } } // 获取文件类型 function getExt() { global $FormName, $Error, $CanUpload; if ($CanUpload) { $ext = $_FILES[$FormName]['name']; $extStr = explode('.', $ext); $count = count($extStr)-1; } return $extStr[$count]; } // 获取文件名称 function getName() { global $FormName, $CanUpload; if ($CanUpload) return $_FILES[$FormName]['name']; } // 新建文件名 function newName() { global $CanUpload, $FormName; if ($CanUpload) { $FullName = $_FILES[$FormName]['name']; $extStr = explode('.', $FullName); $count = count($extStr)-1; $ext = $extStr[$count]; return date('YmdHis').rand(0, 9).'.'.$ext; } } // 上传文件 function upload($fileName = '') { global $FormName, $Directroy, $CanUpload, $Error, $doUpFile; if ($CanUpload) { if ($_FILES[$FormName]['size'] == 0) { $Error = 3; $CanUpload = false; return $Error; break; } } if ($CanUpload) { if ($fileName == '') $fileName = $_FILES[$FormName]['name']; $doUpload = @copy($_FILES[$FormName]['tmp_name'], $Directroy.$fileName); if ($doUpload) { $doUpFile = $fileName; chmod($Directroy.$fileName, 0777); return true; } else { $Error = 4; return $Error; } } } // 创建图片缩略图 function thumb($dscChar = '', $width = 150, $height = 113) { global $CanUpload, $Error, $Directroy, $doUpFile, $sm_File; if ($CanUpload && $doUpFile != '') { $srcFile = $doUpFile; if ($dscChar == '') $dscChar = 'sm_'; $dscFile = $Directroy.$dscChar.$srcFile; $data = getimagesize($Directroy.$srcFile, &$info); switch ($data[2]) { case 1: $im = @imagecreatefromgif($Directroy.$srcFile); break; case 2: $im = @imagecreatefromjpeg($Directroy.$srcFile); break; case 3: $im = @imagecreatefrompng($Directroy.$srcFile); break; } $srcW = imagesx($im); $srcH = imagesy($im); $ni = imagecreatetruecolor($width, $height); imagecopyresized($ni, $im, 0, 0, 0, 0, $width, $height, $srcW, $srcH); $cr = imagejpeg($ni, $dscFile); chmod($dscFile, 0777); if ($cr) { $sm_File = $dscFile; return true; } else { $Error = 5; return $Error; } } } // 显示错误参数 function Err() { global $Error; return $Error; } // 上传后的文件名 function UpFile() { global $doUpFile, $Error; if ($doUpFile != '') return $doUpFile; else $Error = 6; } // 上传文件的路径 function filePath() { global $Directroy, $doUpFile, $Error; if ($doUpFile != '') return $Directroy.$doUpFile; else $Error = 6; } // 缩略图文件名称 function thumbMap() { global $sm_File, $Error; if ($sm_File != '') return $sm_File; else $Error = 6; } // 显示版本信息 function ieb_version() { return 'IEB_UPLOAD CLASS Ver 1.1'; } } // ---------------------------------------------------------------------- // 转发时请保留此声明信息,这段声明不并会影响你的速度! // ******************* IEB上传类 v1.1 *********** // 作者:卢韦华 // 网站:www.iebsoft.cn // 电子邮件:yagas60@21cn.com // 版权声明:版权所有,源代码公开,各种用途均可免费使用,但是修改后必须把修改后的文件 // 发送一份给作者. // **************************************************** ?> 使用方法: <?php // 加载上传类 // include('ieb_upload.inc'); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>无标题文档</title> </head> <body style="font-size:12px;"> <form action="" method="post" enctype="multipart/form-data" name="form1"> <input type="file" name="file"> <input type="submit" name="Submit" value="提交"> <input name="scan" type="hidden" id="up" value="true"> </form><b /><br/> <?php if (isset($_REQUEST['scan'])) { // 声明一个上传类 $upfos = new ieb_upload('file', 'tmp'); /** * ieb_upload( FormName, [Directroy, MaxSize]) * * FormName: 文件域的名称,这个例子里用的是 file 。这个参数不能省略。 * Directroy: 保存上传文件的目录名称。此参数如果省略,文件将上传至该处理页目录中。 * MaxSize: 允许上传的文件的大小限制。默认值为 2097152 byte (即 2M)。 */ // 返回将要上传的文件名称 echo '文件名称:'.$upfos->getName().'<br/>'; // 返回文件后缀名 echo '文件类型:'.$upfos->getExt().'<br/>'; // 返回文件大小 echo '文件大小:'.$upfos->getSize().'<br/>'; /** * getSize( format ) * * format: 返回文件大小的单位值。默认值为 B。 * B 为 byte * M 为 MB * 例:getSize( 'B' ); */ // 随机生成的文件名 echo '随机文件:'.$upfos->newName().'<br/>'; /** * 建议使用随机生成的文件名,以避免上传重名的文件。 * 例如: $upfos->upload ( $upfos->newName()); */ // 上传文件 $upfos->upload(); /** * upload( filename ) * * filename: 上传至服务器后生成这个文件名。默认值为原来的文件名。 */ // 生成缩略图 $upfos->thumb(); /** * thumb( [key, width, height] ) * * key: 生成缩略图的关键字。默认值为"sm_"。如果上传的文件名为 12345.jpg,缩略图的文件名就为 sm_12345.jpg。 * width: 缩略图的宽度。默认值为 150 。 * height: 缩略图的高度。默认值为 113。 * 例:$upfos->thumb ( 'slt_', 200, 140); */ // 返回生成的文件名 echo '生成文件:'.$upfos->UpFile().'<br/>'; // 返回文件的路径 echo '文件路径:'.$upfos->filePath().'<br/>'; // 返回缩略图的名称 echo '缩略图片:'.$upfos->thumbMap().'<br/>'; // 返回上传类版本信息 echo '版本信息:'.$upfos->ieb_version().'<br/>'; } ?> </body> </html>
试试其它关键字
上传
同语言下
.
用net匹配并替换iOS标准的emoji表情符号
.
处理带Emoji表情的的字符串
.
获取微信昵称时 过滤特殊字符
.
通过判断上传文件的头字符来判断文件的类型
.
模拟百度URL加密解密算法
.
以太坊检查地址是否合法
.
实现crontab解析类
.
获取每个月的开始和结束时间
.
图片上传工具类
.
APP手机应用信息采集
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
Dezai.CN
贡献的其它代码
(
4037
)
.
多线程Socket服务器模块
.
生成随机密码
.
清除浮动样式
.
弹出窗口居中
.
抓取url的函数
.
使用base HTTP验证
.
div模拟iframe嵌入效果
.
通过header转向的方法
.
Session操作类
.
执行sqlite输入插入操作后获得自动编号的ID
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3