发一个支持html5上传+图片缩放的 类
发布于:2022-01-17 09:50:54
#1 anythink
先看功能
可以上传指定格式的附件, spext标准配制
可动态更改上传允许格式,用于特殊环境
多文件夹保存规则
图片文件可开启自动缩略图
图片文件可开启自动文字水印 (图片水印请自己测试)
返回成功的参数为 json格式,可进行后期处理
配制参数,index的ext里: 'aUpload' => array( //上传 'savepath' => APP_PATH , //保存的绝对根位置(不要写相对位置) 'savedir' => 'attachs', //相对位置,只写文件夹名称 'tmppath' => APP_PATH .'/attachs/tmp', //上传临时位置必须存在,否则上传失败 'filetype' => 'jpg,png,gif,bmp,rar,zip,mp3,wma,mid,doc,pdf', //支持的格式 'filesize' =>4194304, //4M 'fileinput' =>'filedata' ,//默认文件上传域 'dirtype' => 4, //文件夹保存格式 'imgresize' => TRUE, //图片文件自动创建缩略图 'imgmask' => TRUE, //图片自动加水银 'imgmaskmsg' => 'http://www.yunbian.org ', //水印文字 'imgresizew' => 510, //缩略图比例宽度 ), 使用方法: $upfile = spClass("uploadFile"); $upfile->set_filetypes('jpg|png|jpge|bmp'); //动态设定了允许的上传文件 $upfile->set_diydir('blog_1'); //动态的更改了上传文件夹保存位置 $files = $upfile->fileupload(); //开始上传,可跟一个参数,动态改变上传文件的inputname
2011-06-12 12:23:15
#2 anythink
uploadFile.rar 见附件!
用时请删除,的代码
//----自己系统开始
code..
//----自己系统结束
2011-06-12 12:24:49
#3 anythink
部分原创,部分修改~ 实用为住,无版权,大家好用就行.
2011-06-12 12:27:12
#4 anythink
用着方便就回个贴被 0 0
2011-06-12 12:28:44
#5 jake
不错,适合很多程序使用。:lol
稍候转移到认证区
2011-06-12 16:33:10
#6 anythink
:)对啊 好多都不能上传然后改变缩略图, 这个就整理完善了一下, 一条龙服务 不需要另外再调用什么东西了。
配合xhedtor使用相当好用~
2011-06-13 17:15:14
#7 anythink
修正一个小bug 294行下面 增加
if($img_info[0] < 200){ return true;}
防止过小图片加水印
2011-06-17 10:44:18
#8 虞飞
楼主给个实例吧,例如、
$files = $upfile->fileupload(); //开始上传,可跟一个参数,动态改变上传文件的inputname 这个要怎么改?最好给个完整的例子
2011-07-16 15:44:39
#9 anythink
回复 8 虞飞 $files = $upfile->fileupload('myfileinput'); //就是写 上传文件域名字 即可
2011-07-18 11:14:41
#10 虞飞
知道了,下次再用用看吧。
2011-07-18 21:40:07
#11 lhabc
不错,貌似比较简单实用
2011-08-22 12:42:44
#12 lhabc
提示指定的文件域错误呢,怎么办
2011-08-22 17:23:31
#13 lhabc
郁闷,很多服务器都不支持mime_content_type 函数
2011-08-23 11:55:22
#14 anythink
回复 13 lhabc mime_content_type 是自定义的,可以使用。
2011-08-25 22:37:53
#15 anythink
回复 12 lhabc 查看表单
看 name 是否写对了
2011-08-25 22:38:18
#16 hygzs
呵呵,支持一下
2011-08-30 15:15:00
#17 lijian
Fatal error: Call to undefined function mime_content_type() in D:\wamp\www\speedphp-3.1.89\SpeedPHP\ExtensionsploadFile.php on line 126这是个上面原因啊?
2011-11-16 20:51:30
#18 jake
Fatal error: Call to undefined function mime_content_type() in D:\wamp\www\speedphp-3.1.89\SpeedPHP\ ...lijian 发表于 2011-11-16 20:51 PHP要支持
php_mime_magic.dll库,才能支持mime_content_type();函数。
2011-11-16 21:06:36
#19 lijian
这个db_attach类是怎么回事啊?
2011-11-16 21:34:33
#20 lijian
这个db_attach类是怎么回事啊?
2011-11-16 21:34:36
#21 lijian
Fatal error: Class 'db_attach' not found in D:\wamp\www\speedphp-3.1.89\SpeedPHP\spFunctions.php(149) : eval()'d code on line 1
JAKE 这个db_attach这个类是怎么回事呢,但是文件已经上传成功了 我配置好了 就是 如果我想调用文件,如何获取文件的路径和属性呢,在模板中显示。
2011-11-17 00:01:13
#22 lijian
回复 18 jake Fatal error: Class 'db_attach' not found in D:\wamp\www\speedphp-3.1.89\SpeedPHP\spFunctions.php(149) : eval()'d code on line 1
JAKE 这个db_attach这个类是怎么回事呢,但是文件已经上传成功了 我配置好了 就是 如果我想调用文件,如何获取文件的路径和属性呢,在模板中显示
2011-11-17 00:02:08
#23 jake
回复 jake Fatal error: Class 'db_attach' not found in D:\wamp\www\speedphp-3.1.89\SpeedPHP\spFunc ...lijian 发表于 2011-11-17 00:02 把145行的spClass('db_attach')->create($arr);
删了就没这个提示了,这是那个作者自己的代码。
看上一行
$arr = array('bid'=>$_SESSION['tempid'],'filename'=>$localName,'filesize'=>$bytes,'path'=>$nfilename,'mime'=>$extension,'uid'=>$_SESSION['uid'],'time'=>time());
这些就是上传后的文件资料。
2011-11-17 08:23:30
#24 lijian
回复 23 jake 非常感谢jake的帮助,呵呵 ,配置好了 ,
2011-11-17 09:08:40
#25 lijian
回复 23 jake jake我刚刚配好的,怎么现在就不能用了,是不是fileinput文件域名字的问题啊,能不能发个实例给我看看啊 ,先谢谢了
2011-11-17 10:11:27
#26 jake
楼上主贴就是实例。
2011-11-17 11:53:17
#27 lijian
好了 ,jake,就是那个$arr文件信息,调用的话,都是private的 ,怎么调用出来呢?
2011-11-17 12:00:03
#28 jake
好了 ,jake,就是那个$arr文件信息,调用的话,都是private的 ,怎么调用出来呢? ...lijian 发表于 2011-11-17 12:00 public $abc = null;
然后在刚才那行里
$this->abc = $arr;
这样文件信息就是public了。
2011-11-17 12:02:16
#29 lijian
真是感谢jake的热心帮助,顶一个
2011-11-17 14:03:05
#30 lijian
再就是,jake好像有个 ,就是在可传文件下,图片大于200KB之后在页面上无法显示,这个是的吗?
2011-11-17 14:45:39
#31 jake
再就是,jake好像有个 ,就是在可传文件下,图片大于200KB之后在页面上无法显示,这个是的吗? ...lijian 发表于 2011-11-17 14:45 这个一般是PHP本身有限制,一般一次不能发超过5个文件,每个文件不能超过2M左右。
可以通过修改php.ini来改动
2011-11-17 14:48:49
#32 anythink
那个你自己写自己的附件记录流程
2011-11-17 14:49:58
#33 lijian
但是可以上传到服务器啊,就是在显示的页面上位空
2011-11-17 15:26:23
#34 anythink
仔细核对吧,是json的
2011-11-17 16:18:47
#35 lijian
做一个图片操作呢?如何生成维缩图呢?
2011-11-17 20:44:34
#36 lijian
楼主,那个在index.php中配置了制动生成缩略图,是不是就可以制动生成缩略图了呢?再就是对图片修改操作改怎么做啊?本人菜鸟,跪谢
2011-11-18 09:56:05
#37 anythink
补充一个不支持 mime_content_type的 方法
if(!function_exists('mime_content_type')) { function mime_content_type($filename) { $mime_types = array( 'txt' => 'text/plain', 'htm' => 'text/html', 'html' => 'text/html', 'php' => 'text/html', 'css' => 'text/css', 'js' => 'application/javascript', 'json' => 'application/json', 'xml' => 'application/xml', 'swf' => 'application/x-shockwave-flash', 'flv' => 'video/x-flv', // images 'png' => 'image/png', 'jpe' => 'image/jpeg', 'jpeg' => 'image/jpeg', 'jpg' => 'image/jpeg', 'gif' => 'image/gif', 'bmp' => 'image/bmp', 'ico' => 'image/vnd.microsoft.icon', 'tiff' => 'image/tiff', 'tif' => 'image/tiff', 'svg' => 'image/svg+xml', 'svgz' => 'image/svg+xml', // archives 'zip' => 'application/zip', 'rar' => 'application/x-rar-compressed', 'exe' => 'application/x-msdownload', 'msi' => 'application/x-msdownload', 'cab' => 'application/vnd.ms-cab-compressed', // audio/video 'mp3' => 'audio/mpeg', 'qt' => 'video/quicktime', 'mov' => 'video/quicktime', // adobe 'pdf' => 'application/pdf', 'psd' => 'image/vnd.adobe.photoshop', 'ai' => 'application/postscript', 'eps' => 'application/postscript', 'ps' => 'application/postscript', // ms office 'doc' => 'application/msword', 'rtf' => 'application/rtf', 'xls' => 'application/vnd.ms-excel', 'ppt' => 'application/vnd.ms-powerpoint', // open office 'odt' => 'application/vnd.oasis.opendocument.text', 'ods' => 'application/vnd.oasis.opendocument.spreadsheet', ); $ext = strtolower(array_pop(explode('.',$filename))); if (array_key_exists($ext, $mime_types)) { return $mime_types[$ext]; } elseif (function_exists('finfo_open')) { $finfo = finfo_open(FILEINFO_MIME); $mimetype = finfo_file($finfo, $filename); finfo_close($finfo); return $mimetype; } else { return 'application/octet-stream'; } }
2011-11-27 10:53:56
#38 hanyegudeng
先顶帖,后下载。呵呵
2011-12-05 16:45:48
#39 tomcen
html:
php:
$filename = $this->spArgs("imgfile");
...
$files = $upfile->fileupload($filename);
这样做有什么问题吗? 总是提示出错!
2012-07-14 17:18:52
#40 tomcen
html:
php:
$filename = $this->spArgs("imgfile");
...
$files = $upfile->fileupload($filename);
这样做有什么问题吗? 总是提示出错!
补充一点:
总是提示错误为:文件域的"..."指定错误
2012-07-14 18:14:26
#41 jake
tomcen 发表于 2012-7-14 18:14 html: http://cn.php.net/manual/zh/features.file-upload.post-method.php enctype="multipart/form-data"
2012-07-14 18:21:12
#42 tomcen
jake, 后面加了enctype="multipart/form-data"之后获取到的$filename=$this->spArgs('imgfile')始终为空:
php:
$filename = $this->spArgs('imgfile');
...
$files = $upfile->fileupload($filename);
2012-07-14 19:04:17
#43 jake
$this->spArgs 只能获取GET和POST的数据,文件要用$_FILES。
详细可以看看本帖的代码。
2012-07-14 19:10:47
#44 一米八三
谢谢!楼主楼主楼主楼主
2012-08-12 09:02:01
#45 chenshiming
非常好的东西,正在找,谢谢楼主
2013-01-09 21:19:09
#46 stalker
默认水印字体文件为font2.ttf 但是压缩包里没有提供
2013-04-17 14:12:45
#47 阿鹏
{'err':'文件域的指定错误','msg':''}为什么会这样
2014-03-11 15:13:03
#48 away410
收了,多谢分享
2014-04-10 15:28:15