你可以利用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>

转载于:https://blog.51cto.com/blanklinux/194326

PHP新手上路文件上传相关推荐

  1. Node.js新手教程——怎样实现文件上传功能

    作者:zhanhailiang 日期:2014-11-16 本文将介绍怎样使用Node.js实现文件上传功能. 1. 初始化项目信息:npm init [root@~/wade/nodejs/node ...

  2. 写给新手前端的各种文件上传攻略,从小图片到大文件断点续传

    写在前面 今年国庆假期终于可以憋在家里了不用出门了,不用出去看后脑了,真的是一种享受.这么好的光阴怎么浪费,睡觉.吃饭.打豆豆这怎么可能(耍多了也烦),完全不符合我们程序员的作风,赶紧起来把文章写完. ...

  3. django 快速实现文件上传

    对于web开来说,用户登陆.注册.文件上传等是最基础的功能,针对不同的web框架,相关的文章非常多,但搜索之后发现大多都不具有完整性,对于想学习web开发的新手来说就没办法一步一步的操作练习:对于we ...

  4. PHP异常处理类(文件上传提示)

    知识点: 大部分时候我们的代码总有各种各样的bug,新手程序员(比如我)最经常的工作就是不停的报错和echo变量,一个好的异常处理类可以帮我们更快+更容易理解报错代码的问题,同时,异常处理还可以避免一 ...

  5. 实现一个简单的文件上传进度条

    新手入门web 文件上传完成 取得的进展 没有进度条只能用文字 不好看  必须是一个进度条  没有艺术 互联网很 进度条 需要图片 有多种帧的 他看上去好麻烦 让自己的单纯 很简单 我没想到这么复杂 ...

  6. kingedit 上传php_php文件上传下载实例(实现最简单的网盘功能)

    本人是一个新手代码狗,第一次发表博客,欢迎大大们指点! 最近手头有一个文件上传下载的案例,跟大家一起分享一下作为一个新手的苦逼成长历程! 话不多说,先上代码: 一:这个是一个文件上传的html页面,小 ...

  7. php文件上传详解,PHP文件上传实例详解!!!

    这篇文章主要介绍了PHP文件上传实例代码,需要的朋友可以参考下 首先来看下上传部分的表单代码: 文件:  这里有几个要注意的地方,首先看这句 ,这里我们采用POST方法,个别浏览器还支持PUT方法,当 ...

  8. web漏洞之文件上传漏洞

    结合靶场对新手文件上传漏洞的测试时,遇到的一些问题的整理 文章目录 前言 一.文件上传漏洞是什么 二.工具介绍 1.中国蚁剑 2.读入数据 总结 前言 新手在进行文件上传时会遇到各种各样的问题,大佬别 ...

  9. 【SpringBoot学习】5、SpringBoot 实现文件上传,图片上传并显示功能

    SpringBoot 实现文件上传,图片上传并显示功能 我先看一下<颈椎病康复指南>再给大家说怎么实现的这两个功能,毕竟只是一个新手,解决这种复杂点的问题(相对而言),还是需要花费大量时间 ...

最新文章

  1. thankpad p15改善大风扇的转动
  2. 对Java泛型的简单理解
  3. 微信公众平台----带参数二维码生成和扫描事件
  4. Unet项目解析(5): 数据封装、数据加载、数据显示
  5. 谈谈C++新标准带来的属性(Attribute)
  6. 一道常被人轻视的前端JS面试题
  7. 矩阵乘法+快速幂+序列递推公式
  8. 50 岁程序员创业说:两个月提交 50 个 PR,三个月内融资 2000 万美元
  9. 微信 JSAPI 支付流程
  10. android systrace log,Android性能优化之Systrace分析基础
  11. 申论该怎么学?申论作文如何提高
  12. 官宣 | 首届云原生编程挑战赛报名通道正式开启
  13. SqlServer高级函数使用
  14. 如何搭建网站?第二步:购买服务器域名
  15. 一个屌丝程序猿的人生(一百一十八)
  16. oracle左关联+号表示方式
  17. 山西大同大学计算机科学与技术在哪个校区,山西大同大学有几个校区及校区地址哪个校区最好...
  18. 基于物联网地铁自动售票检票智能系统
  19. hualinux ros 1.3:基础-RouterOS安装
  20. Code::Blocks介绍

热门文章

  1. qt中用mysql获取所有的数据库、数据库中的表名
  2. 题目1207:质因数的个数
  3. 题目梳理(一)(2019.07.06~2019.07.20)
  4. MySQL----ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
  5. HDU2204 Eddy's爱好(容斥原理)
  6. 【安卓开发】Layout Inflation不能这么用
  7. call dword prt[eax]
  8. Android周学习Step By Step(9)--Intent之广播(完)
  9. php 字典 枚举,秒爆十万字典:奇葩技巧快速枚举“一句话后门”密码
  10. cxf开发实践(添加SSL支持)