PHP图片上传不上去,出现警告!

zixisecai 2011-02-10 05:00:29
上传处理代码:


<?
$f=$_FILES['userfile'];
$type_name= $f['tmp_name'];
//print_r ($_FILES['userfile']);
//有没有传文件判断
if ($f['error']==4){
echo("<script>alert('请选择你要上传的文件,谢谢!');location.href='upfile.php';</script>");
}
else{
//出错判断
if ($f['error']){
echo "失败,文件太大了!错误代码是".$f['error'];
exit;
}

//类型判断
if (substr($f['type'], 0, 5) == 'image') {
switch ($f['type']) {
case 'image/jpeg':
case 'image/jpg':
case 'image/pjpeg':
$ext = '.jpg';
break;
case 'image/gif':
$ext = '.gif';
break;
case 'image/png':
case 'image/x-png':
$ext = '.png';
break;
default:
header('Content-type: text/html; charset=UTF-8');
echo("<script>alert('你传的不是图片吧?');location.href='upfile.php';< /script>");
die('REDIRECTING...');
break;
}
}else {
header('Content-type: text/html; charset=UTF-8');
echo("<script>alert('你传的不是图片吧?');location.href='upfile.php';</script>");
die('REDIRECTING...');
}

//生成随机数
$randomnum=NULL;
for($j=0;$j<=5;$j++)//随机数字的长度,本例随机数长度为6
{
srand((double)microtime()*1000000);
$randomnumber=rand(!$j ? 1: 0,9);//产生随机数,不以0为第一个数,有些特殊的地方0开头被系统省略
$randomnum.=$randomnumber;
}

$dest_dir='/upfile';//设定上传目录

$dest=$dest_dir.'/'.time().'_'.$randomnum.$ext;//设置文件名为时间戳加上随机数避免重复

if (is_uploaded_file($f['tmp_name'])) {
$r=move_uploaded_file($_FILES['userfile']['tmp_name'],$dest);
if($r){
chmod($dest, 0777);//设定上传的文件的属性
echo "成功了,文件地址是:".$dest;
}else{

}
}else{
echo("<script>alert('上传失败?');location.href='upfile.php';</script>");
}
}
?>


出现的错误:
Warning: move_uploaded_file(/upfile/1297328385_241621.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in E:\APMServ5.2.6\www\htdocs\ccc\sysadmin\upload.php on line 61

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\WINDOWS\temp\php11B.tmp' to '/upfile/1297328385_241621.jpg' in E:\APMServ5.2.6\www\htdocs\ccc\sysadmin\upload.php on line 61

忘高手解答!
...全文
128 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyaspnet 2011-02-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 zixisecai 的回复:]
上传处理代码:


PHP code

<?
$f=$_FILES['userfile'];
$type_name= $f['tmp_name'];
//print_r ($_FILES['userfile']);
//有没有传文件判断
if ($f['error']==4){
echo("<script>alert('请选择你要上传的文件,谢谢!');location.hr……
[/Quote]

文件夹不存在或者是目录错误,代码改为:


<?
$f=$_FILES['userfile'];
$type_name= $f['tmp_name'];
//print_r ($_FILES['userfile']);
//有没有传文件判断
if ($f['error']==4){
echo("<script>alert('请选择你要上传的文件,谢谢!');location.href='upfile.php';</script>");
}
else{
//出错判断
if ($f['error']){
echo "失败,文件太大了!错误代码是".$f['error'];
exit;
}

//类型判断
if (substr($f['type'], 0, 5) == 'image') {
switch ($f['type']) {
case 'image/jpeg':
case 'image/jpg':
case 'image/pjpeg':
$ext = '.jpg';
break;
case 'image/gif':
$ext = '.gif';
break;
case 'image/png':
case 'image/x-png':
$ext = '.png';
break;
default:
header('Content-type: text/html; charset=UTF-8');
echo("<script>alert('你传的不是图片吧?');location.href='upfile.php';< /script>");
die('REDIRECTING...');
break;
}
}else {
header('Content-type: text/html; charset=UTF-8');
echo("<script>alert('你传的不是图片吧?');location.href='upfile.php';</script>");
die('REDIRECTING...');
}

//生成随机数
$randomnum=NULL;
for($j=0;$j<=5;$j++)//随机数字的长度,本例随机数长度为6
{
srand((double)microtime()*1000000);
$randomnumber=rand(!$j ? 1: 0,9);//产生随机数,不以0为第一个数,有些特殊的地方0开头被系统省略
$randomnum.=$randomnumber;
}

$dest_dir=$_SERVER['DOCUMENT_ROOT'].'/upfile';//设定上传目录

$dest=$dest_dir.'/'.time().'_'.$randomnum.$ext;//设置文件名为时间戳加上随机数避免重复

if (is_uploaded_file($f['tmp_name'])) {
$r=move_uploaded_file($_FILES['userfile']['tmp_name'],$dest);
if($r){
chmod($dest, 0777);//设定上传的文件的属性
echo "成功了,文件地址是:".$dest;
}else{

}
}else{
echo("<script>alert('上传失败?');location.href='upfile.php';</script>");
}
}
?>



要加上$_SERVER['DOCUMENT_ROOT']前缀,表示根目录,这样才正确,另外要确保网站目录下有upfile这个文件夹,这两点都确认了就没有问题了
zixisecai 2011-02-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 whg4585 的回复:]
是不是得建个的upfile目录
[/Quote]
已经建立好了
老骥伏枥 2011-02-10
  • 打赏
  • 举报
回复
检查下路径能否对上号吧!!
junchen168168 2011-02-10
  • 打赏
  • 举报
回复
这个很明显是目录不存在,以后最好是在程序里自动创建目录!这样按照月份存图片比较好!
小在在 2011-02-10
  • 打赏
  • 举报
回复
是不是得建个的upfile目录

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧