首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>编程开发>php>php基础>正文

PHP新手上路(8)

http://www.oklinux.cn  2007-02-09  来源: oklinux收集整理   会员收藏  游客收藏  【 】 

  7. 文件上传

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

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

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

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

  修改后不要忘了重启Apache,IIS或PWS服务哦。

  同时在PHP中,文件上载还有几点是值得注意的:

  1. 在form表单中要将method属性设为post,enctype属性设为multipart/form-data;

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

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

  首先我们需要一个上载文件的表单网页(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>
处理上载文件的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 ();
// 在这里指定你用来存放上传文件的目录,你需要对以下目录有写权限
// 同时,我们也可以给上传文件指定另外的目录,如:$upload_dir = "/local/uploads";
$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>"; }
if ( $sendit )
{
do_upload ();
echo "文件上载成功!";
}
elseif ( $cancelit )
{
header ( "Location: $some_other_script" );
echo "文件上载失败!";
exit;
}
else
{
some_other_func ();
}
?>
</BODY>
</HTML>




上一篇:初学入门 PHP 和 MySQL (2)   下一篇:用PHP将mysql数据表转换为excel文件格式


收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·初学入门 PHP 和 MySQL (2)
·PHP 如何调用 JAVA 类库
·PHPMyVisites安装
·PHP新手上路(2)
·php常见问题
·PHP新手上路(6)
·用php插入实例
·回车还行替换
·PHP/MySQL三日通(3)
·PHP/MySQL三日通(6)
·PHP入门速成
·PHP/MySQL三日通(7)
·PHP/MySQL三日通(4)
·现在安装PHP5简单多了
·PHP新手上路(10)
·PHP:路在何方?
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·用PHP执行Oracle存储过程示例
·用php做一个简单的表单
·用Socket发送电子邮件(二)
·用Socket发送电子邮件(一)
·用中文命名,让汉字走向程序开发
·在Linux下安装显卡驱动程序
·在PHP中用描点法“绘制”中文
·在线人数统计源代码
·怎么样可以把 phpinfo()屏蔽掉
·则表达式判断email和URL
·正则表达式(regular expression)
·正则表达式使用详解(二)
  阅读排行
·php.ini 中文版
·PHP安装全攻略:常见问题解答
·Linux新手入门常用命令大全
·入门教程:学习使用PHP数组
·利用PHP和CSS改变网页文字大小
·用AJAX实现聊天功能(part 1)
·PHP5学习笔记第二节PHP5的对象模型
·PHP程序编译中常见错误信息分析及解释
·PHP开发中最常见的文件操作疑难解答
·带你走进PHP世界 PHP新手上路之一
·PHPMyVisites安装
·使用PHP实现登陆验证码
·视频演示:Zend Platform功能特性详解
·基于PHP的AJAX技术实现文件异步上传
·关于PHP--session的问题集锦解决方案
网摘收藏: