setlt 发表于 2009-12-24 21:45:06

非常棒的文件上传类,共享一下

首先声明非本人原创,不过这个类的确不错,除了文件上传的基本功能,还可以产生缩略图及打水印等功能,经本人测试,可以结合speendPHP很简单的使用。喜欢的,可以试试。

setlt 发表于 2009-12-25 16:18:28

其实使用起来,很简单。下面就上传的使用举个简单的例子,这里是结合speedPHP使用的。
1、简单配置一下,可以使用外部类。
我这边是在项目目录下新建了一个plug文件夹用于放置外部类文件,把下载的uploadFile.php文件放到plug文件夹中。在index.php配置文件中配置:
'include_path'=>array( APP_PATH.'/plug',),
这样就可以在控制器类里面直接使用import('uploadFile.php');
2、新建控制器ToolBox(名字随意,保证类名和文件名一直),书写代码如下:

<?php
import("uploadFile.php");
class ToolBox extends spController {
//上传类测试
function upFile(){
   $this->title='文件上传';
   if($this->spArgs('up')){
    $upFlie=new uploadFile();
    $result=$upFlie->upload_file($_FILES['upfile']);
    $msg=$upFlie->errmsg;
    if($result){
   $this->success=$msg;
    }else {
   $this->errmsg=$msg;
    }
   }
}
}
?>

就这么简单的几行代码,就可以了,当然还要一个视图文件。
3、建立视图。
细心的你可能会发现我上面的控制器中没有使用$this->display();语句,其实我是使用了sp强大的自动页面输出功能,当然在使用前要先配置一下,在配置文件中 'view'=>array(
'auto_display'=>true,
),这样简单的配置就可以了。
模板内容如下:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>{$title}</title>
</head>
<body>

<h1>{$title}</h1>
{if $success}
<p>{$success}<a href="{spUrl c=ToolBox a=upFile}">继续上传</a><a href="{spUrl c=ToolBox a=index}">返回项目首页</a></p>
{elseif $errmsg}
<p>{$errmsg}<a href="{spUrl c=ToolBox a=upFile}">重新上传</a></p>
{else}
<div class="mt mb">
<form method="POST" enctype="multipart/form-data" action="{spUrl c=ToolBox a=upFile}">
<input type="file" name="upfile"/>
<input type="submit" value="上传" class="btn" name="up"/>
</form>
</div>

</body>
</html>


上传功能就这样简单的实现了,当然这个类里面的其他功能使用方法同理,不过你可能要先熟悉一下这个类了。有问题请跟帖。
把现成的示例文件传上来吧,可以参考一下。压缩包里面的一些其他文件是个人练习使用的,偷懒一下,没有删除。
里面index.php是我本地的配置,要想正常运行还要根据实际情况在配置。

jake 发表于 2009-12-24 22:51:58

很不错的一个上传类,同时还有缩放图形和水印功能,是非常优良的一个扩展类。

感谢楼主的分享!

daing 发表于 2009-12-25 08:46:01

注释很详细,可还是不知道怎么用?
楼主能举例说明吗?
一定做到物尽其用!!!

setlt 发表于 2009-12-25 09:00:27

谢谢支持,可以先仔细研究一下,个人感觉还是很有实用价值的。晚点举个简单的实例,我们一块学习,呵!

gudufy 发表于 2009-12-25 15:04:25

非常不错,希望写个使用教程上来,谢谢。

jake 发表于 2009-12-25 17:52:13

感谢 setlt 朋友的教程!

这里补充一下,由于预设了“'include_path'=>array( APP_PATH.'/plug',),” 的路径
因为spClass本身就是通过import来获取类的。
所以在使用上不需要import了,可以直接用
$upFlie=spClass(“uploadFile”);
是可以替代:
import("uploadFile.php");
$upFlie=new uploadFile();
-----
PS:sp团队以后将定期的挑选一些比较好的扩展类,作为sp框架默认的扩展类进行发布。希望大家更踊跃提供如楼主一样的优良的扩展类。

setlt 发表于 2009-12-25 20:53:09

感谢楼上的指点,看来要好好研究一下源码了,:)

zhangcjl 发表于 2010-1-2 17:24:21

:P:lol:D:victory:up up up

vsxp 发表于 2010-1-3 01:13:30

好东西,感谢分享。
页: [1] 2 3 4 5 6 7
查看完整版本: 非常棒的文件上传类,共享一下