免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2622 | 回复: 15
打印 上一主题 下一主题

【已解决】一个程序问题,在线等 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-09 13:20 |只看该作者 |倒序浏览
8-15.php 和 8-16.php  一个图片上传的程序。 但是在标红的地方好像出问题了。以为我直接点击确认提交的时候并不提示没有选择文件而是提示文件上传失败。同时也无法正确的上传图片。
程序是清华大学出版社的《php网络编程从入门到精通》一书中的代码。烦请大家看下是什么地方出问题了。谢谢了

8-15.php
<html>
<head>
<title>文件上传的前台页面</title>
</head>
<body>
<form ENCTYPE="multipart/form-data" ACTION="8-16.php" METHOD="POST">
<input name="userfile" type="file">
<p>
<input type=submit value="确认提交">
<input type=reset value="重新选择">
</body>
</html>
-----------------------------------------------------------------------------
8-16.php

<html>
<head>
<title>文件上传后台处理页面</title>
</head>
<body>
<?
if($upfile=="none")                                                                                                //没有选定文件的处理
{
        echo "没有选择文件";                                                                                //显示提示信息
        echo "<p>";
        echo "点<a href=\"8-15.php\">这里</a>返回";                                                //给出返回连接
}
else                                                                                                                        //选定文件
{
        $filepath="images/";                                                                                        //定义路径
        $filename=$filepath.$upfile_name;                                                                //新的路径及文件名
        echo $upfile_name;                                                                                        //显示文件名
        echo "<p>";
        echo $upfile_size;                                                                                        //显示文件大小
        echo "<p>";
        echo $upfile_type;                                                                                        //显示文件类型
        if(copy($upfile,$filename))                                                                                //复制文件的目标路径
        {
                unlink($upfile);                                                                                        //删除原有文件
                echo "<p>";
                echo "指定文件已经成功上传!";
                echo "<p>";
                echo "点<a href=\"8-15.php\">这里</a>返回";                                        //给出返回连接
        }
        else
        {
                echo "文件上传失败!";
        }
}
?>
</body>
</html>


修改后的代码-----------------------------------------------------
8-16a.php
<html>
<head>
<title>文件上传后台处理页面</title>
</head>
<body>
<?php
if($userfile == "none")                                                                                         //没有选定文件的处理
{
        echo "没有选择文件";                                                                            //显示提示信息
        echo "<p>";
        echo "点<a href=\"8-15.php\">这里</a>返回";                                             //给出返回连接
}
else                                                                                                                    //选定文件
{
$uploaddir  =  '/var/www/html/images/' ;
$uploadfile  =  $uploaddir  .  basename ( $_FILES [ 'userfile' ][ 'name' ]);

echo  '<pre>' ;
if ( move_uploaded_file ( $_FILES [ 'userfile' ][ 'tmp_name' ],  $uploadfile ))
{
                echo "<p>";
                echo "指定文件已经成功上传!";
                echo "<p>";
                echo "点<a href=\"8-15.php\">这里</a>返回";
}
         else
        {
        echo "文件上传失败!";        
        }


print_r ( $_FILES );

print  "</pre>" ;
}


?>
</body>
</html>

[ 本帖最后由 wstczyl 于 2009-7-9 14:27 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-07-09 13:22 |只看该作者
请关掉 register_globals 用 $_FILES['upfile'] 来操作,然后把 copy 换成 move_uploaded_file。参见手册。

论坛徽章:
0
3 [报告]
发表于 2009-07-09 13:36 |只看该作者
请关掉 register_globals 用 $_FILES['upfile'] 来操作

修改 httpd.conf 文件吗?  没找到 “register_globals” ,,,

论坛徽章:
0
4 [报告]
发表于 2009-07-09 13:39 |只看该作者
if($upfile=="none")      >> 这样也行?

论坛徽章:
0
5 [报告]
发表于 2009-07-09 13:40 |只看该作者
... 是  php.in   

见笑了 菜鸟一个,先看看能行不.

论坛徽章:
0
6 [报告]
发表于 2009-07-09 13:40 |只看该作者
请楼主看下官方doc,里面有上传的示例
或者:http://cn.php.net/manual/en/function.move-uploaded-file.php

论坛徽章:
0
7 [报告]
发表于 2009-07-09 13:41 |只看该作者
原帖由 smallfish_xy 于 2009-7-9 13:39 发表
if($upfile=="none")      >> 这样也行?


如果 register_globals 打开,就可以。但是现在已经是 deprecated,而且这个选项将会很快被移除。

论坛徽章:
0
8 [报告]
发表于 2009-07-09 13:43 |只看该作者
register_globals = Off    是关闭的状态   还是不行的。

if($upfile=="none")      >> 这样也行? 不知道哦,书上这么写的,,,  有什么办法能实现吗?

论坛徽章:
0
9 [报告]
发表于 2009-07-09 13:50 |只看该作者
原帖由 wstczyl 于 2009-7-9 13:43 发表
register_globals = Off    是关闭的状态   还是不行的。

if($upfile=="none")      >> 这样也行? 不知道哦,书上这么写的,,,  有什么办法能实现吗?


不管是否关闭,都应该用 $_FILES,你可以看看上面版主给的链接。
你看的书,太老了吧……

论坛徽章:
0
10 [报告]
发表于 2009-07-09 13:54 |只看该作者
07年的书

谢谢了,自己研究下去。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP