网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > PHP > PHP入门安装 > 第八节 文件上传  

第八节 文件上传

2006-03-29  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

7. 文件上传

中国网管联盟bitsCN.com

  你可以利用PHP实现文件的上传功能,注意客户端的浏览器应该是Netscape3以上或者IE3以上的版本。同时,因为本程序与你的PHP配置文件(PHP3php3.ini,PHP4php.in)设置有关。在执行该程序之前请先检查您的PHP配置文件有没有做好如下的设置: 网管网www.bitscn.com

  将;upload_tmp_dir该行的注释符,即前面的分号“;”去掉,使该行在php.ini文档中起作用。upload_tmp_dir是用来定义上传文件存放的临时路径,在这里你还可以给其定义一个绝对路径,例如:upload_tmp_dir = d:upload  当然,此时你的d:upload目录必须有读写权限。 中国网管联盟bitsCN.com

  如果你在你的.php3程序里已经定义了上传的路径,此时上传文件的路径以.php3程序里定义的路径为基准。在下例中,receiver.php3文件就指定了用于存放上传文件的目录是:d:upload 网管bitscn_com

upload_max_filesize 是用来限制PHP处理的上载文件大小的最大值,以字节计算,缺省值为2097152= 2*1024*1024字节(2),你可以通过修改该缺省值来定义最大的上载文件大小。 网管联盟bitsCN_com

  修改后不要忘了重启Apache,IISPWS服务哦。
  
  同时在PHP中,文件上载还有几点是值得注意的:
1.
form表单中要将method属性设为post,enctype属性设为multipart/form-data

网管朋友网www_bitscn_net

2. form表单中可以加一个hidden类型的input,其中名字为 MAX_FILE_SIZE的隐藏值域,通过设置其VALUE可以限制上载文件的大小。当然,这个值不可能超过PHP的配置文件(PHP3php3.ini,PHP4php.ini)中的upload_max_filesize,注意这个input框一定要放在所有file类型的input框前面,否则也是无效的哦; 网管朋友网www_bitscn_net

3. PHP程序运行完后,上传文件被放在了临时目录下。如果上传文件没有被改名或移动,那么在请求的最后该文件将自动被从临时文件夹中删除,所以我们最好立即将新的上传文件上传移到一个永久目录下或更改其文件名。 网管论坛bbs_bitsCN_com


首先我们需要一个上载文件的表单网页(upload.htm):
<HTML>
<HEAD>
<TITLE>Upload Your File</TITLE>
</HEAD>
<BODY>
<FORM ACTION=\"receiver.php3\"
ENCTYPE=\"multipart/form-data\" METHOD=POST>
<INPUT TYPE=\"HIDDEN\"
NAME=\"MAX_FILE_SIZE\" VALUE=\"2000000\">
<INPUT TYPE=\"FILE\"
NAME=\"uploadfile\" SIZE=\"24\" MAXLENGTH=\"80\">
<BR><BR>
<INPUT TYPE=\"SUBMIT\" VALUE=\"Upload File!\"
NAME=\"sendit\">
<INPUT TYPE=\"SUBMIT\" VALUE=\"Cancel\"
NAME=\"cancelit\"><BR>
</FORM>
</BODY>
</HTML>

网管网www.bitscn.com

处理上载文件的PHP文件(receiver.php3
<?
function do_upload ()
{
global $uploadfile, $uploadfile_size;
global $local_file, $error_msg;
if ( $uploadfile == \"none\" )
{
$error_msg = \"
对不起,你没有选定任何文件上传!\";
return;
}
if ( $uploadfile_size > 2000000 )
{
$error_msg = \"
对不起,你要上传的文件太大了!\";
return;
}
$the_time = time ();

网管u家bitscn.net

// 在这里指定你用来存放上传文件的目录,你需要对以下目录有写权限
//
同时,我们也可以给上传文件指定另外的目录,如:$upload_dir = \"/local/uploads\";
网管联盟bitsCN@com

$upload_dir = \"d:/upload\";
$local_file = \"$upload_dir/$the_time\";
if ( file_exists ( '$local_file' ) )
{
$seq = 1;
while ( file_exists ( \"$upload_dir/$the_time$seq\" ) ) { $seq++; }
$local_file = \"$upload_dir/$the_time$seq\";
};
rename ( $uploadfile, $local_file );
display_page ();
}
function display_page ()
{
//
这里是你的页面内容
}
?>
<HTML>
<HEAD>
<TITLE>php3 Receiving Script</TITLE>
</HEAD>
<BODY>
<?
if ( $error_msg ) { echo \"<B>$error_msg</B><BR><BR>\"; }

网管网www_bitscn_com

if ( $sendit )
{
do_upload ();
echo \"文件上载成功!\";
}
elseif ( $cancelit )
{
header ( \"Location: $some_other_script\" );
echo \"
文件上载失败!\";
exit;
}
else
{
some_other_func ();
}
?>
</BODY>
</HTML>
中国网管联盟bitsCN.com

TAGs   上传   文件   第八   PHP   目录   上载   error_msg   程序   路径   local_file      
 上一篇:第七节 建设一个简单交互的网站(三)   下一篇:第九节 建设一个简单交互的网站(五)
第八节 文件上传 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: