关于上传图片问题

张1987 php工程师  2010-07-13 10:53:08
为什么接不到高和宽的值
<?php
header("Content-type:image/jpeg");
?>
<?php
class picture{
function ResizeImage($filename){
list($width, $height) = getimagesize($filename);
$new_width =300;
$new_height =300;
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0,0,0,0,$new_width, $new_height,$width,$height);
imagejpeg($image_p);
return $image;
//return imagejpeg($image_p);
}
}


?> 这是缩略图的功能单独运行可以实现,但是下面的代码调用上面的方法就得不到宽和高的值 $image值也没空 请教一下各位高手啊!!!万分感谢!!!
<?php
include_once('sleditor.php');
$upok=1;
if($upok){
$file=($_FILES['photofile']['name']);
$file_name = ($_FILES['photofile']['tmp_name']);
$picture=new picture();
$suolue=$picture->ResizeImage($file);
$path_translated = "upload/";//上传文件夹
$UpLoadPath = addslashes(dirname($path_translated))."/upload/";
$FileName = $UpLoadPath."$upfile_name";//$upfile_name就是上传的文件名
if($path_translated==0)
{
mkdir("upload");
}
$picAlt = $_POST['picAlt'];
$image_type = array('jpg', 'gif', 'bmp', 'jpeg', 'pcx', 'tiff', 'png', 'svg');
if (($pos = strrpos($_FILES['photofile']['name'], '.')) !== false) {
$file_ext = strtolower(substr($_FILES['photofile']['name'], $pos + 1));
}
if (!in_array($file_ext, $image_type))
{
echo "<script>alert('只能上传图片格式的文件');</script>";
exit();
}
//函数 move_uploaded_file(,); 带两个参数 前面一个是临时文件名,后面是移动过后的真实文件名
$up = move_uploaded_file($file_name,"upload/$file");
if($up==1)
{
$file_url=$FileName.$file;
echo "<meta http-equiv='content-type' content='text/html; charset=".WIKI_CHARSET."'>";
//echo '<input id = "msg" type="hidden" value ="'.$suolue.'">';
//echo '<script type="text/javascript">alert(document.getElementById("msg").value);</script>';
echo '<script type="text/javascript">parent.ThcInsertPicOrder("'.$file_url.'");</script>';
exit();
}
else
{
echo "<script>alert('上传失败!');</script>";
exit();
}
}
?>
...全文
99 点赞 收藏 18
写回复
18 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Dleno 2010-07-13
[Quote=引用 1 楼 kyzy_yy_pm 的回复:]

$file_name = ($_FILES['photofile']['tmp_name']);
$picture=new picture();
$suolue=$picture->ResizeImage($file_name);
[/Quote]

++++++++
回复
kyzy_yy_pm 2010-07-13
$file_name才是图片的路径
回复
kyzy_yy_pm 2010-07-13
$file_name = ($_FILES['photofile']['tmp_name']);
$picture=new picture();
$suolue=$picture->ResizeImage($file_name);
回复
kyzy_yy_pm 2010-07-13
上传过来的资源是按路径来的那个文件名只是个随便的,就像我们大家,他叫张三,可是谁知道是哪个张三那,你要告诉他是哪里的张三啊
回复
张1987 2010-07-13
[Quote=引用 15 楼 kyzy_yy_pm 的回复:]
恩,要在调用ResizeImage之前就要将图片存起来,然后再将你保存的路径传给ResizeImage当参数才行
[/Quote]
我的参数应该是文件名才对啊 怎么会是路径啊??
回复
张1987 2010-07-13
[Quote=引用 15 楼 kyzy_yy_pm 的回复:]
恩,要在调用ResizeImage之前就要将图片存起来,然后再将你保存的路径传给ResizeImage当参数才行
[/Quote]你的QQ多少啊 加一下你啊
回复
kyzy_yy_pm 2010-07-13
恩,要在调用ResizeImage之前就要将图片存起来,然后再将你保存的路径传给ResizeImage当参数才行
回复
张1987 2010-07-13
哦 你那意思我现在写的不对吧
回复
kyzy_yy_pm 2010-07-13
你在看看你move_uploaded_file运用的位置(要在调用ResizeImage之前进行应用,得到返回的图片保存路径,把这个路径当参数传给函数ResizeImage),也就是说你还没有将图片传过来呢你都开始获取图片的大小啦,那是不可能的
回复
kyzy_yy_pm 2010-07-13
首先我给你讲讲啊:
1、需要你提交过来,那么获取到了tmp_name(文件的物理路径)
2、进行上传
3、上传完毕,你那个函数要进行路径的返回(如果$up == 1),然后再根据返回的路径获取图片的大小
回复
张1987 2010-07-13
[Quote=引用 10 楼 kyzy_yy_pm 的回复:]
$up输出下看看是什么
[/Quote]
$suolue=$picture->ResizeImage($file);
输出是1
如果是 $suolue=$picture->ResizeImage($filename);
输不出来值;我是用js弹框方式做的
回复
kyzy_yy_pm 2010-07-13
$up输出下看看是什么
回复
kyzy_yy_pm 2010-07-13
$up = move_uploaded_file($file_name,"upload/$file");
$up输出下看看是上面,还有,你都没有返回文件保存路径,那么ResizeImage($filename)还能获取的到图片大小么???
回复
张1987 2010-07-13
[Quote=引用 6 楼 kyzy_yy_pm 的回复:]
对啊,虽然是临时路径但是也是你上传的文件的唯一的可以用物理路径
[/Quote]
我改了为什么上传都上传不了啊 麻烦帮我看一下全不代码啊?谢谢啊
回复
张1987 2010-07-13
[Quote=引用 2 楼 kyzy_yy_pm 的回复:]
$file_name才是图片的路径
[/Quote]
那个不是虚拟路径吗
回复
kyzy_yy_pm 2010-07-13
对啊,虽然是临时路径但是也是你上传的文件的唯一的可以用物理路径
回复
张1987 2010-07-13

$file_name = ($_FILES['photofile']['tmp_name']);
$picture=new picture();
$suolue=$picture->ResizeImage($file_name);


$filename不是临时路径吗?
回复
张1987 2010-07-13
改了$filename不是临时路径吗??
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告