知识大全 PHP实现文件上传的思路及实例
Posted 目录
篇首语:学向勤中得,萤窗万卷书。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 PHP实现文件上传的思路及实例相关的知识,希望对你有一定的参考价值。
PHP实现文件上传的思路及实例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
文件上传我们需要用到HTML里面表单的type=file类型 及其enctype属性 这是我们大家必须要用的 当然了PHP函数库当中的FILE函数库 字符串类型函数库 目录函数库及$_FILES[]的使用是我们必须要用到的
也许每一个站点都可能会对上传文件有许多的限制 这些限制会包括 文件类型 文件大小 扩展名 以及上传目录的存在与否 上传文件的存在与否 目录的可写性 可读性 上传文件的改名及怎样把文件从缓存当中复制到你所需要的目录当中
当然出错的预处理也是我们不容忽视的!如果再深一步的讨论我们还可以对文件的操作起用事件日志的记录
下面我们通过一段程序来实现这些功能
首先是我们预设的变量值 它包括文件大小 文件扩展名类型 MIMI类型 及是否删除的开关变量
$MAX_SIZE = ;$FILE_MIMES = array( image/jpeg image/jpg image/gif image/png application/msword );
$FILE_EXTS = array( zip jpg png gif );
$DELETABLE = true;
下一部就是设置浏览器访问变量及目录访问变量
$site_name = $_SERVER[ HTTP_HOST ];$url_dir = // $_SERVER[ HTTP_HOST ] dirname($_SERVER[ PHP_SELF ]);$url_this = // $_SERVER[ HTTP_HOST ] $_SERVER[ PHP_SELF ];
$upload_dir = files/;$upload_url = $url_dir /files/;$message =;
建立上传目录并相应改变权限
if (!is_dir(files)) if (!mkdir($upload_dir))die (upload_files directory doesn t exist and creation failed); if (!chmod($upload_dir ))die (change permission to failed );用户请求的处理
if ($_REQUEST[del] && $DELETABLE) $resource = fopen(log txt a); fwrite($resource date(Ymd h:i:s) DELETE $_SERVER[REMOTE_ADDR] $_REQUEST[del]\\\\n); fclose($resource);
if (strpos($_REQUEST[del] / )﹥ ); //possible hacking else if (strpos($_REQUEST[del] files/) === false); //possible hacking else if (substr($_REQUEST[del] )==files/) unlink($_REQUEST[del]);print ﹤script﹥window location href= $url_this?message=deleted successfully ﹤/script﹥; else if ($_FILES[ userfile ]) $resource = fopen(log txt a); fwrite($resource date(Ymd h:i:s) UPLOAD $_SERVER[REMOTE_ADDR] $_FILES[ userfile ][ name ] $_FILES[ userfile ][ type ] \\\\n); fclose($resource);
$file_type = $_FILES[ userfile ][ type ]; $file_name = $_FILES[ userfile ][ name ]; $file_ext = strtolower(substr($file_name strrpos($file_name )));
//文件大小的检查
if ( $_FILES[ userfile ][ size ] ﹥ $MAX_SIZE) $message = The file size is over MB ;//File Type/Extension Check else if (!in_array($file_type $FILE_MIMES) && !in_array($file_ext $FILE_EXTS) )$message = Sorry $file_name($file_type) is not allowed to be uploaded ; else$message = do_upload($upload_dir $upload_url);
print ﹤script﹥window location href= $url_this?message=$message ﹤/script﹥;else if (!$_FILES[ userfile ]);else $message = Invalid File Specified ;
列出我们上传的文件
$handle=opendir($upload_dir);$filelist = ;while ($file = readdir($handle)) if(!is_dir($file) && !is_link($file)) $filelist = ﹤a href= $upload_dir$file ﹥ $file ﹤/a﹥; if ($DELETABLE)$filelist = ﹤a href= ?del=$upload_dir$file title= delete ﹥x﹤/a﹥;$filelist = ﹤sub﹥﹤small﹥﹤small﹥﹤font color=grey﹥ date(d m H:i filemtime($upload_dir $file)) ﹤/font﹥﹤/small﹥﹤/small﹥﹤/sub﹥;$filelist =﹤br﹥;
function do_upload($upload_dir $upload_url)
$temp_name = $_FILES[ userfile ][ tmp_name ]; $file_name = $_FILES[ userfile ][ name ]; $file_name = str_replace(\\\\\\\\ $file_name); $file_name = str_replace( $file_name); $file_path = $upload_dir $file_name;
//File Name Check if ( $file_name ==) $message = Invalid File Name Specified;return $message;
$result = move_uploaded_file($temp_name $file_path); if (!chmod($file_path ))$message = change permission to failed ; else$message = ($result)?$file_name uploaded successfully : Somthing is wrong with uploading a file ; return $message;
?﹥
﹤center﹥﹤font color=red﹥﹤?=$_REQUEST[message]?﹥﹤/font﹥﹤br﹥﹤form name=upload id=upload ENCTYPE=multipart/form data method=post﹥Upload File ﹤input type=file id=userfile name=userfile﹥﹤input type=submit name=upload value=Upload﹥﹤/form﹥
cha138/Article/program/PHP/201311/21506相关参考
PHP典型模块与项目实战大全:PHP文件上传的原理及实现[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来
PHP典型模块与项目实战大全:PHP文件上传的原理及实现[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来
知识大全 Asp.Net 无刷新文件上传并显示进度条的实现方法及思路
Asp.Net无刷新文件上传并显示进度条的实现方法及思路 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
ASP文件上传原理分析及实现实例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 摘要在基于/的应
PHP文件上传代码用法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! php文件上传代码编写过程
最常用的方法是通过设置nginx的client_max_body_size解决nginx+php上传大文件主要是设置上传文件大小和php脚本运行时长即可用nginx来做webserver的时上传大文件
PHP文件编程综合案例-文件上传的实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! PHP文件
一款利用asp文件上传组件把文件上传到服务器之前进行判断文件大小否超过指定大小了本实例讲的是upload_xsoft文件上传组件哦filefilesize>就可以限制文件为多少klishix
PHP无刷新上传文件实现代码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! index <
ASPX文件上传限制类型实例源码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs