说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

PHP文件上传 -PHP初学入门教程8

HTML文档下载 WORD文档下载 PDF文档下载
PHP中处理文件上传的基本方法。

 

7. 文件上传

 

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

 

 

 

 

让文本框输入完后,直接跳入下一行 -VB资料 VB如何编制带有不定个数参数的过程。 VB如何充分扩充VB功能 VB如何传递不固定个数的叁数? VB如何打开和关闭光驱门 VB如何导出收藏夹到文件或者导入文件到收藏夹 VB如何得到磁盘上剩余空间的值 VB如何得到应用程序的资料! VB如何调用chm格式的帮助文件 VB如何调用控制面版中的应用程序 VB如何动态更新数据报表 VB如何改变 NT 预设的打印机? VB如何改变 Windows 预设的打印机 VB如何关闭其他程序 VB如何过滤键盘录入 VB如何获得Windows95已经运行的时间 VB如何检测左右键同时按下? VB如何检查您的电脑是否打开 ActiveDesktop? VB如何将程序建立成“启动”文件夹的捷径? VB如何将程序建立成「启动」资料夹的捷径。 VB如何结束 Shell 所启动的程序? VB如何拦截键盘输入 如何判定VB调用的一个EXE程序已经结束. VB如何判断某一个Drive是否为光碟机? VB如何清空回收站? VB如何取得汉字的区位码 VB如何去优化你的VB程序 VB如何让点阵打印机每次印出一行? VB如何设计一个可中断循环的按钮。 VB如何实现VB程序登录密码加密 VB如何使程序不出现在任务列表中 简单的控件问题 ADO调用存储过程(ORACLE),用CommandText的问题 字体固定后,所有字符(包括汉字)的高度都相同吗? 请问applet和application之间有什么不同呢? 字体固定后,所有字符(包括汉字)的高度都相同吗 为什么看帖不回帖? 关于用c#操纵word的问题 为什么在WIN下可以,在LINUX下不行呀? 大数除法 那位高手解答一下 键盘被锁定!!!急 CSDN现在是怎么了!!!登录不了,想办法进来了背景又是一片白,左边菜单列表又不见了 找到新东家,祝各位兄弟中秋节快乐! 有喜欢骑自行车的吗,进来聊聊,你的车多少钱啊 怎么用javamail发送html页面的邮件? 请问各位一个网页路径问题,谢谢了。急急!分不够再加,本人在线等候!!! 简单问题 为什么我用FLASH做出来的GIF格式的图很大?一些最简单的都有3MB左右!谢谢高手来指教!! 很奇怪的问题,redhat9+adsl+iptable老是丢包,而且达到30%,在2k下没有这样的问题 2太电脑连网,为什么双击网络邻居的时候跳出对话框说无法浏览网络? 菜鸟请大家看看这个程序错误出在那? 请问一个进度条的问题?有谁用过x-scan软件 有关生成既有文本又有图形文件的问题,应该如何解决,在线等! 用VBA如何获得预览页有多少行?解决问题我给200分 请问谁能提供netcat的源代码及其分析文章? 怎样把视图的内容全部清空 数据库维护计划怎么总是不能备份日志? 一个SQL查询问题 本人需要通过BCB写一个接收转发的服务程序。。。 ★狂ft!刻的CD-R盘在win98下能用在2K和XP下不能用?★ 请问这样行吗?程序如下(高手过招)(我结帖算快啦) 西安外事学院的学生请进 什么是三层结构? Panel内动态加载的用户控件的事件激发问题? 请教各位了!!!!!!!!!! 什么是三层结构? 关于delphi 7的问题 请问在EVC中如何使用ACTIVEX控件? 是否可以注销系统热键 最近将参加IBM电子商务师的考试 完蛋了,快要丢掉饭碗了:一台机器用拨号上网一台服务器在公司的内部网上,它们都可以访问因特网,怎样用TCP/IP(或UDP)互相通讯? 从sql server导进来的数据,为什么查询不到? 数据源的问题 [高分请教]Jsp调用servlet后的返回问题!!! 数据源的问题 大力看到我就跑!!! 编程中如何获取注册表的当前大小以及注册表的最大值? 如何在vb程序中打开Autocad格式的图片(100分) 奇怪,外键属性不可看!! IIS好像不支持中文网页文件名,可我需要中文文件名,怎么办? 完蛋了,快要丢掉饭碗了:一台机器用拨号上网一台服务器在公司的内部网上,它们都可以访问因特网,怎样用TCP/IP(或UDP)互相通讯? 革命人永远是年轻有几集 革命人永远是年轻的作者是谁? 关于大唐的.请用简单且多的词语或成语评价一下长孙皇后!顺便评价一下李世民吧!我也是用尽可能多的现在成语或词语, 春兴前两句透露了什么样的季节信息 歌词中山顶还是山岭山巅 填空!谢谢 为什么在飞机起飞时,人耳会感到痛?是不是运动状态突然改变? 推荐几本有好句子和经典道理的书 什么书才有好词好句和主要内容和感想 随便一本关于思乡的书本的好词好句和主要内容. 革命人永远是年轻怎么样 永康车王非法集资近10亿判无期 曾坐前三季全国物流总额145.7万亿元 几内亚总统为中国房产开发项目奠基国际新闻早报:俄罗斯外长说俄乌贸易关中国核潜艇露面,战略威慑力更强“金发女孩”父母否认卖女儿 因没钱放阿联酋中国商会为中资企业办讲座澳媒评论称中国买家推高悉尼房价四分之11年来最强风暴袭英国 海陆空交通大奥巴马巨资医保网站故障频出 副总裁被中断30年 美国与新西兰恢复联合军演不便民电话网购要小心,谨防“遭烫”线缆掉落了为告状人提供“一站式”服务李小鹏听取平遥县委群众路线活动情况汇王金平党籍案二审将宣判 称与马英九同西甲:C罗大四喜贝尔传射J罗助攻 皇加多宝举行媒体开放日活动从宽阔水到丹霞奇观废品收购店占道堆废品我不是“富二代”,我是“奋二代”原生世界变身无限之旅龙之审判宇宙之匙极反之变体修魔蛊梦幻少年逆寰宇奔雷诀南疆行阿里山神木旅游出火旅游清水断崖旅游士林夜市旅游杨公堤旅游龙山旅游神龙岛旅游五龙岛旅游富里桥旅游金龙桥旅游遇龙桥旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘