您的位置:首页网页设计PHP教程 → PHP新手上路(八)

PHP新手上路(八)

时间:2004/11/7 3:09:00来源:本站整理作者:蓝点我要评论(0)

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):  





Upload Your File






ENCTYPE="multipart/form-data" METHOD=POST>


NAME="MAX_FILE_SIZE" VALUE="2000000">


NAME="uploadfile" SIZE="24" MAXLENGTH="80">






NAME="sendit">


NAME="cancelit">










处理上载文件的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 ()

{

// 这里是你的页面内容

}

?>





php3 Receiving Script






if ( $error_msg ) { echo "$error_msg

"; }

if ( $sendit )

{

do_upload ();

echo "文件上载成功!";

}

elseif ( $cancelit )

{

header ( "Location: $some_other_script" );

echo "文件上载失败!";

exit;

}

else

{

some_other_func ();

}

?>



v   




相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 PHP入门教程书籍介绍用可牛为MM无痛纹身刺 编译apache的rewrite模块实例Apache中URL Rewrite技术实现方式在PHP中有urldecode()等函数来解决网页URL编PHP中的mb_convert_encoding转换编码与icon

人气排行 在PHP中有urldecode()等函数来解决网页URL编dede 完美分页效果! pagelist修改,实现门PHP入门教程书籍介绍用IdHTTP获取UTF-8编码的网页apache泛域名解析+泛域名指向处理文件ThinkTemplate模板引擎的设计和使用方法如何用php将任何格式视频转为flv破解防盗链图片的php函数