本文章来给初学者介绍一个简单的php实现文件上传的程序代码,大家可拿下去供学习使用,如果放到网络上应用我们需要更多过滤来判断了。
先来看实例
| 代码如下 | 复制代码 |
|
|
|
上面的代码完全可以工作,但实际应用中漏洞百出,让我们逐步来完善之首先,上载的文件必须有一个固定的目录保存,我们在这里用一个$UploadPath变量保存之,如$UploadPath = "/home/flier/upload/";
或复杂一点的自动定位,如
| 代码如下 | 复制代码 |
| $UploadPath = AddSlashes(dirname($PATH_TRANSLATED))."\upload\"; |
|
$PATH_TRANSLATED顾名思义是当前传送目录
我们假定以其一个名为upload的子目录来保存上载的文件。dirname函数返回其目录名,然后加上子目录名然后用一个变量$FileName保存完整的上载后文件名和路径
$FileName = $UploadPath.$UploadFile_name;
其次,我们还想让用户得知上载文件的简要信息,如上载文件的大小if($UploadFile_size
| 代码如下 | 复制代码 |
| $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中添加一个隐含值指出当前的状态(界面或实现),以便区分对待
下面程序可用于实例应用
立即学习“PHP免费学习笔记(深入)”;
Gyb2b V1.01免费版可终身使用,是一款功能强大的B2B电子商务应用软件。该软件不仅更新和修改了V1.0相关功能,更是采用了目前互联网上最流行的LAMP组合(Linux+Apache+Mysql+PHP)开发完成,模板技术实现了界面与代码的有效分离,用户可以快速地在此基础上编译模板;提供B2B电子商务应用最常见的求购、供应、商品、公司库、行业资讯、商圈、资信认证、在线交易、交易评分、留言、搜
0
| 代码如下 | 复制代码 |
|
function FileUpload( $resourceType, $currentFolder, $sCommand ) if ( isset( $_FILES['NewFile'] ) && !is_null( $_FILES['NewFile']['tmp_name'] ) ) $oFile = $_FILES['NewFile'] ; // Map the virtual path to the local server path. // Get the uploaded file name. $sOriginalFileName = $sFileName ; // Get the extension. if ( isset( $Config['SecureImageUploads'] ) ) if ( isset( $Config['HtmlExtensions'] ) ) // Check if it is an allowed extension. while ( true ) if ( is_file( $sFilePath ) ) if ( is_file( $sFilePath ) ) $permissions = 0777; if ( isset( $Config['ChmodOnUpload'] ) && $Config['ChmodOnUpload'] ) $oldumask = umask(0) ; break ; if ( file_exists( $sFilePath ) )
SendUploadResults( $sErrorNumber, $sFileUrl, $sFileName ) ; exit ; |
|
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号