请选择 进入手机版 | 继续访问电脑版

SpeedPHP框架

 找回密码
 注册成为新用户

QQ登录

只需一步,快速开始

楼主: setlt

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

[复制链接]
发表于 2010-6-26 12:56:37 | 显示全部楼层
多谢分享了,好东西啊。。。
发表于 2010-7-25 15:57:10 | 显示全部楼层
真是太棒了,我看了都兴奋的发狂了
发表于 2010-8-2 16:43:16 | 显示全部楼层
$uparray=array('./upload/','date');
     $upFlie=spClass('uploadFile',$uparray);
按照 jake的  ...
shinid8210 发表于 2010-4-1 23:17



    应该为:
    $upFlie=spClass('uploadFile',$uparray[0]);

   我这样用,成功了。
发表于 2010-8-4 11:21:51 | 显示全部楼层
不错不错,谢谢分享!
发表于 2010-8-18 20:30:53 | 显示全部楼层
缩放的例子有吗,是剪裁,还是简单原图放大缩小。。。
发表于 2010-8-19 22:57:25 | 显示全部楼层
回复 30# ry.china


    你好!

$uploadfile  = spClass('uploadImg');我这样写,报   
uploadImg类定义不存在,请检查。

怎么解决呢?我的上传类放在SpeedPHP的Extensions里面
发表于 2010-9-25 10:28:24 | 显示全部楼层
运行不了呀,摆脱搞完整一点,发布前检查一下,一堆错误。Warning: require(SP_PATH/SpeedPHP.php) [function.require]: failed to open stream: No such file or directory in D:\www\sp_img\speed\index.php on line 16

Fatal error: require() [function.require]: Failed opening required 'SP_PATH/SpeedPHP.php' (include_path='.') in D:\www\sp_img\speed\index.php on line 16
发表于 2010-12-8 00:01:53 | 显示全部楼层

试验成功

不错的扩展类。只是示例文件中有个别错误需要修改,比如:双引号用了中文引号,模板文件中缺少“{/if}”,保存路径也有问题,需加上“APP_PATH”等等。
试用了一下,很好,准备应用到自己的项目中去。

试验成功的代码如下:

1、下载28楼的uploadFile.php文件,复制到网站根目录下面的plug文件夹中。

2、spConfig.php中添加如下代码:

  1. 'include_path' => array(
  2.   APP_PATH.'/include',
  3.   APP_PATH.'/plug',
  4. ), // 用户程序扩展类载入路径
复制代码


3、控制器文件touxiang.php:
  1. <?php
  2. class touxiang extends spController {
  3.   //上传类测试
  4. function upFile(){
  5.   $this->title="文件上传";
  6.   if($this->spArgs("up")){
  7.    $uparray=array('filepath'=>APP_PATH . '/images/touxiang','filename'=>'date');
  8.    $upFlie=spClass("uploadFile",$uparray);
  9.    $result=$upFlie->upload_file($_FILES["upfile"]);
  10.    $msg=$upFlie->errmsg;
  11.    if($result){
  12.     $this->success=$msg;
  13.     $this->newname=$result["nn"];
  14.    }else {
  15.     $this->errmsg=$msg;
  16.    }
  17.   }
  18. }
  19. }
复制代码


4、模板文件upFile.html:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html" charset="utf-8" />
  5. <title>{$title}</title>
  6. </head>
  7. <body>
  8. <h1>{$title}HELLO</h1>
  9. {if $success}
  10. <p>{$success} <a href="{spUrl c=touxiang a=upFile}">继续上传</a></p>
  11. {elseif $errmsg}
  12. <p>{$errmsg} <a href="{spUrl c=touxiang a=upFile}">重新上传</a></p>
  13. {else}
  14. <div class="mt mb">
  15. <form method="POST" enctype="multipart/form-data" action="{spUrl c=touxiang a=upFile}">
  16. <input type="file" name="upfile"/>
  17. <input type="submit" value="上传" class="btn" name="up"/>
  18. </form>
  19. </div>
  20. {/if}
  21. </body>
  22. </html>
复制代码
发表于 2010-12-17 19:33:34 | 显示全部楼层
可以断点续传?
发表于 2011-1-22 22:57:01 | 显示全部楼层
  1.                 function upFile(){
  2.                         $this->title='文件上传';
  3.                         if($this->spArgs("up")){
  4.                                 $uparray=array('filepath'=>APP_PATH . '/themes/uploads/','filename'=>'date');
  5.                                 $upFlie=spClass("uploadFile",$uparray);
  6.                                 $result=$upFlie->upload_file($_FILES["upfile"]);
  7.                                 $msg=$upFlie->errmsg;
  8.                                         if($result){
  9.                                         //dump($result); //输出上传成功的返回值 'nn'=>new_name,'fs'=>$size,'ft'=>$type,'fn'=>$name
  10.                                         $this->success = $msg;//赋值给模版成功提示
  11.                                         $this->newname = $result["nn"];//赋值上传成功文件名。
  12.                                         $this->pic_path = "/themes/uploads/".date('Ym').'/'.$this->newname;
  13.                                         //echo "<script>parent.setValue('".$upFlie->uploaded."')</script>";
  14.                                         }else {
  15.                                         $this->errmsg = $msg;
  16.                                         }
  17.                                 }
  18.                         $this -> display('test/adupfile.html');
复制代码


上面是http://localhost/test.php?c=main&a=upFile

如果我用iframe 调用上面文件
  1. <IFRAME SRC="http://localhost/test.php?c=main&a=upFile" WIDTH="500" HEIGHT="80" frameborder="0"></IFRAME>
复制代码
如何将上传图片的ID,也就是$this->pic_path发送到嵌套iframe这个页面而写入数据库?


下面是'test/adupfile.html模版页

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html" charset="utf-8" />
  5. <title><{$title}></title>
  6. </head>
  7. <body>
  8. <{if $success}>
  9. <{$pic_path}>文件上传成功<br>
  10. <img src="<{$pic_path}>" border=0 alt="" title="">
  11. <{elseif $errmsg}>
  12. <p><{$errmsg}> <a href="<{spUrl c=main a=upFile}>">重新上传</a></p>
  13. <{else}>
  14. <div class="mt mb">
  15. <form method="POST" enctype="multipart/form-data" action="<{spUrl c=main a=upFile}>">
  16. <input type="file" name="upfile"/>
  17. <input type="submit" value="上传" class="btn" name="up"/>
  18. </form>
  19. </div>
  20. <{/if}>
  21. </body>
  22. </html>
复制代码
您需要登录后才可以回帖 登录 | 注册成为新用户

本版积分规则

手机浏览|简版|中文PHP框架|开源协议|SpeedPHP.com ( 粤ICP备08008671号

GMT+8, 2019-11-23 06:38

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表