ImageEdit使用问题

#1 zhgzzy

$pic = $this->spArgs("pic");接收上传图片
如何使用ImageEdit 得到缩略图的地址呀??
jake下面的代码没弄明白!!
$img = spClass('ImageEdit', $rootpath.$imgpath, null, TRUE);
$img->resize(400, 400, true);
$img->output('JPG', '缩略图路径');
$img = null;

2010-09-18 16:11:53

#2 jake

http://speedphp.com/bbs/redirect.php?goto=findpost&ptid=938&pid=4903

之前写的看不懂?再写更详细一些
1. 按照
http://www.w3school.com.cn/php/php_file_upload.asp
内的说明,保存被上传的文件。这里的例子是保存文件到"upload/" . $_FILES["file"]["name"]
也就是保存到upload文件夹内和原文件名相同的文件。
upload文件夹和index.php同级!
这里图片已经上传了,当然,不是“$pic = $this->spArgs("pic");接收上传图片”。而是通过$_FILES来接收。
2. 然后使用ImageEdit类来缩放这个图片。

$img = spClass('ImageEdit', "upload/" . $_FILES["file"]["name"] , null, TRUE); // 这是刚才保存的路径"upload/" . $_FILES["file"]["name"],也就是图片的路径。
$img->resize(400, 400, true); // 将图片缩放到400x400范围内。
$img->output('JPG', "upload/small_" . $_FILES["file"]["name"] ); // 这里换个名字保存$img->output('JPG', '缩略图路径'); 也就是保存缩略图路径是"upload/small_" . $_FILES["file"]["name"]
$img = null;
然后可以看看upload里面,就会有一张大图,一张小图

2010-09-18 20:09:09

#3 zhgzzy

没用呀,是不是要什么支持呀

2010-09-20 13:28:44

#4 jake

没用呀,是不是要什么支持呀
zhgzzy 发表于 2010-9-20 13:28
提示什么?

2010-09-20 13:33:44

#5 zhgzzy

function spost(){
                $articleObj = spClass("lib_sample");   
        $img = spClass('ImageEdit', "upload/" . $_FILES["file"]["name"] , null, TRUE);
        $img->resize(400, 400, true); // 将图片缩放到400x400范围内。
        $img->output('JPG', "upload/small_" . $_FILES["file"]["name"] );
        $img = null;
         if( $title = $this->spArgs("title") ){
                        // 已经提交,开始对数据进行验证
                        $articleObj = spClass("lib_sample");
                       
                        // 这里直接验证全部的提交数据($this->spArgs()获取全部提交数据)
                        $results = $articleObj->spVerifier($this->spArgs());
                        if( false == $results ){ // 当spVerifier返回false的时候,则是表示已经通过验证,数据是合格的

                                $articleObj->create($this->spArgs());                               
                                echo "发布成功:".$this->spArgs('title').", 1秒后自动跳转!
";
                echo "";       
                        }else{
                                foreach($results as $item){
                                        foreach($item as $msg){
                                                $this->error($msg,spUrl("main","spost"));
                                        }
                                }
                        }
                }
}
$img = spClass('ImageEdit', "upload/" . $_FILES["file"]["name"] , null, TRUE);
$img->resize(400, 400, true); // 将图片缩放到400x400范围内。
$img->output('JPG', "upload/small_" . $_FILES["file"]["name"] );
$img = null; //加上这几行代码之后没用upload文件夹下没有图

2010-09-20 13:49:31

#6 zhgzzy

ImageEdit.php  放在 Extensions 文件夹下的

2010-09-20 14:26:21

#7 jake

之前写的看不懂?再写更详细一些
1. 按照

内的说明,保存被上传的文件。这里的例子是保存文件到"upload/ ...
jake 发表于 2010-9-18 20:09
原来我发的你都没看,我写了两步,你做了第二步,第一步没有去做。
哎~~~写的再多也是白费的~~~

2010-09-20 14:33:52

#8 zhgzzy

:'(
php不能图文在一起同时上传呀

2010-09-21 11:12:27

#9 jake

php不能图文在一起同时上传呀
zhgzzy 发表于 2010-9-21 11:12
PHP可以上传图片加上表单内容,也就图文都一起上传。

不过你的问题在于,你并没有针对图片上传进行处理。在接收表单数据的时候,直接跳过了“接收上传文件”这步,也就是没有move_upload_file等,然后就在困惑为什么图片无法缩放。


还是说一句,请耐心,耐心看我给的链接内的例子,那就是表单上传和处理的标准代码,多动手试试,不要想当然。基础,有时候真的比什么技巧都重要。

2010-09-21 11:32:38

#10 zhgzzy

搞定了:D  下面是全部代码
if($_FILES['pic']){  //是否有图片上传
    $uploaddir   =   'images/sample/'.date('y-m-d-h-i-s').'-';  //设置上传目录及用时间添加一个前缀 防止图片重名
    $uploadfile   =   $uploaddir.$_FILES['pic']['name'];   //获取上传图的名称
    move_uploaded_file($_FILES['pic']['tmp_name'],$uploadfile); //保存图片
    $img = spClass('ImageEdit', $uploadfile , null, TRUE);  //设置缩图
    $img->resize(200, 200, true); //缩小图片 200 * 200
    $img->output('JPG', $uploadfile );
    $img = null;
}else{
    $uploadfile='images/sample/nopic.jpg'; //没有上传图的话就给他一个默认的图片地址
}

2010-09-21 11:49:30