ImageEdit使用问题
发布于:2022-01-17 09:50:54
#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