php上传图片,如何自动生成对应的小图,保留原图。

if(!empty($_FILES)){$tempFile=$_FILES['Filedata']['tmp_name'];//临时文件名//Validatethefil... if (!empty($_FILES))
{
$tempFile = $_FILES['Filedata']['tmp_name']; //临时文件名

// Validate the file type
$fileTypes = array('jpg','jpeg','gif','png'); //允许的文件后缀
$fileParts = pathinfo($_FILES['Filedata']['name']); //文件原名
$ftype = $fileParts["extension"]; //文件扩展名

if (in_array($ftype, $fileTypes)) //判断扩展名是否正确
{
if(!file_exists($targetFolder))
mkdir($targetFolder);

$destination = $targetFolder.time().".".$ftype; //为上传图片重新指定一个名称

sleep(1); //睡眠1秒钟,避免获取的时间戳重复

if(!move_uploaded_file ($tempFile, $destination)) //将临时文件移到目标文件夹下指定文件名
{
echo "移动文件出错!";
}
else
{
$pinfo1=pathinfo($destination);
$fname = $pinfo1["basename"]; //文件在服务器中存储的名字

$thumb_path = "http://".$_SERVER ['HTTP_HOST']."/WHPCGH/admin/hdly/".$targetFolder.$fname;
echo $thumb_path; //上传成功后返回给前端的数据
}

}
else
{
echo '不支持的文件类型';
}

想实现上传过程中,同时生成一张小图,长宽可自己设置,如何实现啊,不知道怎么生成啊
展开
 我来答
zhangwangwang
推荐于2016-07-17
知道答主
回答量:24
采纳率:0%
帮助的人:13.9万
展开全部
$kf=$_FILES["pic"]['name'];
$size=$_FILES['pic']['size'];

$type=end(explode(".",$kf));//获取图片类型
$type_arr=array("gif","GIF","jpg","JPG","png","PNG","jpeg","GPEG");
if(!in_array($type,$type_arr)){
alert("很抱歉,目前只支持gif,jpg,png格式的图片!");
}
if($size>2000000){
//is_uploaded_file(
alert('上传图片小于2000KB.');
}
$filename=date("YmdHis").rand(0,100).".".$type;//新图片的完整名称
$dir="../upfile/".$userid."/";
if(!is_dir($dir)){//路径若不存在则创建
mkdir($dir);
}
//上传
if(move_uploaded_file($_FILES['pic']['tmp_name'],$dir.$filename)){
//读取文件大小
$upsize=intval($_FILES["pic"]["size"]/1024);
if($upsize>200){
$img=$dir.$filename;
upimg($img,1400,1100,$type);
}
//复制图片
if(@copy($dir.$filename,$dir.'s_'.$filename)){
$img=$dir.'s_'.$filename;
upimg($img,200,200,$type);
}
}

/**
* $imgval 获取文件
* $newwidth 生成缩略图宽度
* $newheight 生成缩略图高度
* $typeval 图片类型
**/
function upimg($imgval,$newwidth,$newheight,$typeval){
//extFrm($imgval."+".$newwidth."+".$newheight);
$img=$imgval;//$sdir.$filename;//获取该图片
$type=$typeval;//获取文件类型
list($width,$height)=getimagesize($img);//获取该图片大小
$newimg=imagecreatetruecolor($newwidth,$newheight);
if($type=="gif" || $type=="GIF"){
$source=imagecreatefromgif($img);
}
else if($type=="jpg" || $type=="JPG" || $type=="jpeg" || $type=="JPEG"){
$source=imagecreatefromjpeg($img);
}
else if($type=="png" || $type=="PNG"){
$source=imagecreatefrompng($img);
}
imagecopyresampled($newimg,$source,0,0,0,0,$newwidth,$newheight,$width,$height);
if($type=="gif" || $type=="GIF"){
imagegif($newimg,$img);
}
else if($type=="jpg" || $type=="JPG" || $type=="jpeg" || $type=="JPEG"){
imagejpeg($newimg,$img);
}
else if($type=="png" || $type=="PNG"){
imagepng($newimg,$img);
}
}
主要是上传一个文件,然后复制一个出那个文件,并修改复制出来的那个文件
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式