php实现上传,PHP实现文件上传例子

实例1:

上载文件表单网页:updatefile.htm

上载文件表单
请选取文件:

[Ctrl+A 全部选择 然后拷贝]

处理上载文件网页:updatefile.php3

处理上载文件

copy($userfile, "newfilename");

echo $userfile." - 用户上传到服务器上的文件临时存放的名称
";

echo $userfile_name." - 在用户机器上该文件的原始名称
";

echo $userfile_size." - 上传文件的实际字节数
";

echo $userfile_type." - 如果用户的浏览器提供了这个信息的话,

它表示mime的类型。例如

image/gif
";

?>

[Ctrl+A 全部选择 然后拷贝]

注意:文件上载后必须拷贝到新的地方或重新更名,否则当进程执行完后,上载样本将被删除

实例2:

PHP3是一种非常强大的CGI脚本语言,就其语言特点基本上源于C,就其实现方式而言更象PERL,而其对数据库的内在支持更使之成为ASP的强大对手。

首先在前台必须有一个界面

文件上载界面

ACTION = "upload.php3" METHOD = "POST">

[Ctrl+A 全部选择 然后拷贝]

值得注意的是一个 MAX_FILE_SIZE的隐藏值域,通过设置其VALUE可以限制上载文件的大小。  然后在后台实现文件上载操作。如果只是最基本的上载,寥寥几行就可以搞定

If($UploadFile != "none"){

copy($UploadFile,"$UploadFile_name");

unlink($UploadFile);

}

else{

echo "你没有选择任何文件上载!";

}

?>

因为form传递过来的值自动赋值给同名变量,所以直接通过$UploadFile可以访问上载的文件,但由于这是一个保存文件的变量,因此文件名字必须通过另外一个$UploadFile_name变量取得。在拷贝文件后删去临时文件(unlink)。

上面的代码完全可以工作,但实际应用中漏洞百出,让我们逐步来完善之首先,上载的文件必须有一个固定的目录保存,我们在这里用一个$UploadPath变量保存之,如$UploadPath = "/home/flier/upload/";

或复杂一点的自动定位,如

$UploadPath = AddSlashes(dirname($PATH_TRANSLATED))."\\upload\\";

$PATH_TRANSLATED顾名思义是当前传送目录

我们假定以其一个名为upload的子目录来保存上载的文件。dirname函数返回其目录名,然后加上子目录名然后用一个变量$FileName保存完整的上载后文件名和路径

$FileName = $UploadPath.$UploadFile_name;

其次,我们还想让用户得知上载文件的简要信息,如上载文件的大小if($UploadFile_size <1024) {  //上载文件大小

$FileSize = (string)$UploadFile_size . "字节";

}

elseif($UploadFile_size

$FileSize = number_format((double)($UploadFile_size / 1024), 1) . " KB";

}

else{

$FileSize = number_format((double)($UploadFile_size / (1024 * 1024)), 1) . " MB";

}     number_format函数起到格式化输出的作用,具体用法请参照手册。下一步我们必须考虑到文件已经存在和拷贝操作失败的情况,并提供相应的提示信息if(!file_exists($FileName)){

if(copy($UploadFile,$FileName)) {

echo "文件 $UploadFile_name($FileSize)上载成功!";

}

else {

echo "文件 $UploadFile_name上载失败!";

}

unlink($UploadFile);

}

else {

echo "文件 $UploadFile_name已经存在!";

}

然后我们应该考虑到大文件上载时容易出现超时的情况,可以用set_time_limit($TimeLimit);加大超时限制时间。

最后,把截面和实现代码综合到一个单独的文件中,为了实现这个想法,我们通过在 form中添加一个隐含值指出当前的状态(界面或实现),以便区分对待完成代码如下:

upload.php3:

if(!$UploadAction):

?>

文件上载界面

ACTION = "upload.php3" METHOD = "POST">

else:

?>

文件上载代码

$UploadAction=0;

$TimeLimit=60; /*设置超时限制时间

缺省时间为 30秒

设置为0时为不限时 */

set_time_limit($TimeLimit);

If(($UploadFile != "none")&&

($UploadFile != ""))

{

$UploadPath = AddSlashes(dirname($PATH_TRANSLATED))."\\upload\\";

//上载文件存放路径

$FileName = $UploadPath.$UploadFile_name; //上载文件名

if($UploadFile_size <1024) //上载文件大小

{

$FileSize = (string)$UploadFile_size . "字节";

}

elseif($UploadFile_size

{

$FileSize = number_format((double)($UploadFile_size / 1024), 1) . " KB";

}

else

{

$FileSize = number_format((double)($UploadFile_size/(1024*1024)),1)."MB";

}

if(!file_exists($FileName))

{

if(copy($UploadFile,$FileName))

{

echo "文件 $UploadFile_name ($FileSize)上载成功!";

}

else

{

echo "文件 $UploadFile_name上载失败!";

}

unlink($UploadFile);

}

else

{

echo "文件 $UploadFile_name已经存在!";

}

}

else

{

echo "你没有选择任何文件上载!";

}

set_time_limit(30); //恢复缺省超时设置

?>

返回

endif;

?>[Ctrl+A 全部选择 然后拷贝]

出处:

责任编辑:cjj

◎进入论坛网络编程版块参加讨论

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258091.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浙企加入中国大数据产业生态联盟 共商数据价值

基于大数据时代的考量&#xff0c;在工业和信息化部指导下&#xff0c;8月2日&#xff0c;中国电子信息产业发展研究院联合大数据产业链各环节企业及第三方产业机构自愿组成非营利社会组织——中国大数据产业生态联盟。浙江企业元宝铺受邀成为联盟理事成员单位。 大会现场&…

hdu 4442 Physical Examination (2012年金华赛区现场赛A题)

昨天模拟赛的时候坑了好久&#xff0c;刚开始感觉是dp&#xff0c;仔细一看数据范围太大。 题目大意&#xff1a;一个人要参加考试&#xff0c;一共有n个科目&#xff0c;每个科目都有一个相应的队列&#xff0c;完成这门科目的总时间为ab*&#xff08;前面已完成科目所花的总时…

xsd学习教程

http://www.w3school.com.cn/schema/转载于:https://www.cnblogs.com/eric-lin/p/4969269.html

php 赋值 递增,PHP 基础(赋值及函数)

开端<?php>结尾弱类型语言 定义变量的时候 不需要 声明 但是 每一个变量前 都必须 加$ 符号储存文件按 统一放到 安装文件夹下面的 WAMP 下面 的WWW 文件内部 (与创的站点统一即可) 该文件下面不能出现中文注释语法&#xff1a; 单行注释&#xff1a;…

maven project创建填充项

GroupID是项目组织唯一的标识符&#xff0c;实际对应JAVA的包的结构&#xff0c;是main目录里java的目录结构。ArtifactID就是项目的唯一的标识符&#xff0c;实际对应项目的名称&#xff0c;就是项目根目录的名称。一般GroupID就是填com.leafive.test这样子。转载于:https://w…

【循序渐进学Python】14.数据库的支持

纯文本只能够实现一些简单有限的功能。如果想要实现自动序列化&#xff0c;也可以使用 shelve 模块和 pickle 模块来实现。但是&#xff0c;如果想要自动的实现数据并发访问&#xff0c;以及更标准&#xff0c;更通用的数据库(database)存储方式还是使用数据库。 1. Python 数据…

Foundation框架

1.框架是由许多类、方法、函数、文档按照一定的逻辑组织起来的集合&#xff0c;以便使研发程序变的更容易 清除缓存&#xff0c;删除这个文件夹下的所有文件/Users/fanyafang/Library/Developer/Xcode/DerivedData 显示隐藏文件&#xff1a;defaults write com.apple.finder Ap…

ubuntu上搭建php,ubuntu10.04上搭建php网站运行环境

ubuntu 10.04下搭建php网站运行环境ubuntu 10.04下搭建php网站运行环境前提&#xff1a;要打开root权限sudo password [这里填写root密码]1、第一步安装ubuntu10.042、更新源sudo apt-get update3、安装lighttpdsudo apt-get install lighttpd安装好之后检查lighttpd是否成功启…

Windows 10 Threshold 2 升级记录

昨天&#xff08;11月17日&#xff09;升级到Windows 10 Threshold 2版本。我的使用的设备是Surface Pro 3&#xff0c;4G内存&#xff0c;128G硬盘。 Threshold 2是作为一个Windows系统更新推送的。如果没有收到系统更新提示&#xff0c;在系统设置里面手动检查一下更新就可以…

转换php script类型,javascript如何实现值的类型转换

本篇文章给大家介绍使用javascript进行值的类型转换的方法&#xff0c;有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你们有所帮助。JavaScript是松散类型的语言&#xff0c;大多数情况下&#xff0c;运算符和函数会自动将值转换为正确的类型(隐式转…

iOS屏幕适配方案-Auto Layout

市场上的android手机五花八门。各种尺寸的屏幕让android程序员们比較头疼。也有一些大神写了一些博客提出了自己的观点。iOS貌似也迎来了大屏6&#xff0b;&#xff0c;因此屏幕适配的问题也是有滴&#xff0c;因此苹果也有自己的方法&#xff0d;auto Layout 。本人初学iOS。今…

Exercise 12: Prompting People

age raw_input("How old are you? ") height raw_input("How tall are you? ") weight raw_input("How much do you weigh? ") print "So, youre %r old, %r tall and %r heavy." % ( age, height, weight) 转载于:https://www.…

一年一循环

一年了&#xff0c;没怎么关注博客园&#xff0c;回来看看。 希望自己今后多学多记录多分享。转载于:https://www.cnblogs.com/Chinarain/p/4974904.html

JAVA三角海伦公式,海伦公式求三角形面积出错求教

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼就下面这个程序 输入其他的数字都可以算出面积 但是当输入3,4,6时 计算出面积为零 求吧友指出错误在哪package javaapplication17;import java.util.Scanner;public class JavaApplication17 {public static void main(String[] ar…

虚拟机里面安装Openfiler 2.99

2019独角兽企业重金招聘Python工程师标准>>> 简介 Openfiler 由rPath Linux驱动&#xff0c;它是一个基于浏览器的免费网络存储管理实用程序&#xff0c;可以在单一框架中提供基于文件的网络连接存储 (NAS) 和基于块的存储区域网 (SAN)。Openfiler 支持 CIFS、NFS、…

win10如何搭建php,Win10系统怎么搭建php环境 win10搭建PHP环境方法

Win10系统怎么搭建php环境&#xff1f;win10搭建PHP环境方法。在今天的Win10系统使用教程中&#xff0c;我们将给大家分享的是在Win10系统下搭建Apache和PHP的开发环境的方法。可能有网友会问&#xff1a;Win10系统搭载Apache和PHP的开发环境的方法是不是与Win7/Win8.1的差不多…

关于jmf不能播放mp3的问题解决

想写个JAVA的MP3音乐管理器&#xff0c;使用JMF插件&#xff0c;但发现运行时总报一个异常&#xff1a;Unable to handle format: mpeglayer3, 44100.0 Hz, 16-bit, Stereo, LittleEndian, Signed, 16000.0 frame rate, FrameSize32768 bitsFailed to realize: com.sun.media.P…

LINK:fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

原文地址&#xff1a;http://yacare.iteye.com/blog/2010049 很多伙伴在更新VS2010&#xff0c;或者卸载VS2012安装2010后&#xff0c;建立Win32 Console Project/MFC项目时会出现"LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏"的错误。 错误描…

网站出现403 Forbidden

1&#xff0c; 你在一定时间内过多地访问此网站&#xff08;一般是用采集程序&#xff09;&#xff0c;被防火墙拒绝访问了 2&#xff0c; 网站域名解析到了空间&#xff0c;但空间未绑定此域名 3&#xff0c; 你的网页脚本文件在当前目录下没有执行权限 4&#xff0c; 服务器繁…