PHP上传函数实例代码

1。upload.html上传形式
复制代码代码如下所示:


U3000 U3000



1。请注意,这是一个标签,我们已经实现了文件的上传,必须指定为多部分/表单数据,否则服务器将不知道做什么。
2。值得注意的是,在文件upload.html形式选择max_file_size隐藏的范围,这可以通过设置它的值限制上传文件的大小(值)。
对3.max_file_size值只有一个浏览器的建议,事实上,它可以简单地绕过。所以不要指望浏览器的价值。事实上,对上传文件的PHP设置最大值无效。但最好是添加max_file_size的形式,因为它可以防止用户从找到的文件太大,等待上传大文件后。

PHP上载文件所涉及的参数

复制代码代码如下所示:
$ F =美元'myfilehttp_post_files { };
dest_dir美元= 'uploads / /;设置上传目录
dest_dir dest =美元美元。' / '。日期(旗下)。_。$ { 'name' }; / /设置文件名为日期加上避免重复的文件名
R = move_uploaded_file美元($ { 'tmp_name},$ DEST);
chmod($ dest,0755); / /设置文件的属性

也许

一系列的_files ========================================================================美元以上的例子如下:我们假设文件上传字段的名称是用户文件(名称可以随意命名)
复制代码代码如下所示:
原来的名字_files美元'userfile} { { 'name' }客户机文件。
MIME类型的_files { } { 'userfile美元类型}文件需要浏览器提供支持信息,如图像、GIF。
_files { } { 'userfile美元的'size}上传的文件大小,单位为字节。
临时文件是存储在服务器端的_files美元后'userfile} { { } 'tmp_name的文件上传。
_files { } {美元'userfile '错误' }和错误代码相关的文件上传

值:0;未出现错误,文件上载成功。
价值:1;上传的文件超过在php.ini中的upload_max_filesize期权的价值。
价值:2;上传文件的大小超过了HTML表单的max_file_size选项指定的值。
值:3;仅上传文件的一部分。
值:4;没有上传文件。

PHP的默认上传限制是最大的2M。如果我们想上传超过这个集合的文件,我们需要调整一些参数,比如PHP和Apache。接下来,我们简要介绍PHP文件上载所涉及的一些参数。

file_uploads
如果允许文件通过http上传,则默认为。

upload_tmp_dir
upload_tmp_dir是用来说明临时目录放在PHP上传。如果要上载文件,则需要确保服务器不关闭临时文件并向文件夹写入权限。如果未指定,PHP将使用系统的默认值。

upload_max_filesize
允许上传文件的最大值,默认是2M。
复制代码代码如下所示:
< PHP
定义('muilti_file_upload,10'); / /多达10个文件同时上传
定义('max_size_file_upload ','500000 '); / /文件大小不超过5MB大小
定义('file_upload_dir,想: / / /);上传文件目录
允许上传文件名
array_extention_interdite美元=阵列('。php,' 3 ',' PHP4,.exe、.msi、.htaccess、。广州'); / /上传文件扩展名

公共信息显示/功能
功能func_message($消息= '',''好=美元){
回声';
如果($ = TRUE){
$;
}
如果($ = false){
$;
}
回声';
}
/处理
$行动=(isset($ _post {整套' })){ }:_post美元整套' ';
文件大小=(isset($ _post {文件' })){ }:_post美元文件';
如果($文件)!=){
$文件=;
}
message_true美元=;
$message_false = '';

开关($动作){
case'upload:
Chmod(file_upload_dir,0777);
为($ NB = 1;铌< muilti_file_upload美元美元;铌+ +){
如果($ _files { 'file_铌} { 'size美元。} > = 10){
如果($ _files { 'file_铌} { 'size美元。} max_size_file_upload){
如果(!in_array(ereg_replace(' ^ { {:alnum } }:({ } { {:- _。alnum:} })* 。','。,_files { 'file_美元,美元} { }铌'name'),array_extention_interdite美元)){
如果($ _post { 'file_name_'。{ } = $ NB!)
file_name_final = { 'file_name_ _post美元美元美元美元,NB }延伸;
{ }人
file_name_final美元=美元_files { 'file_'。} { } $铌'name';
}
文件名更改
file_name_final美元= strtr(file_name_final美元,aaaaaa ',' aaaaaa ceeeeiiiiooooouuuuyaaaaaaceeeeiiiioooooouuuuyy);
($ file_name_final = preg_replace /({ ^。a-z0-1 } +)/我,'_,file_美元name_final);

_files { 'file_美元,美元} { } = Nb 'name' file_name_final美元;
move_uploaded_file($ _files { 'file_美元} { 'tmp_name,Nb的},file_upload_目录。文件。file_name_final美元);

message_true美元的已上传文件:美元。_files { 'file_'。} { } $铌'name';
其他{ }
message_false美元文件上传失败:美元。_files { 'file_'。} { $铌'name' } = ';
}
其他{ }
message_false美元-文件大小超过。max_size_file_upload / 1000。'kb:。_files美元{ 'file_'。} { } 'tmp_name NB美元,};
}
}用于
打破;
}
>


多文件上传

背景颜色:#。边境{ 000000 }
。箱{背景颜色:# f8f8f9;}
文本颜色:# 000000 {;
字体家族:歌体;
字体大小:12px;
字体重量:粗体}
输入,选择字体大小:12px {;}
{体
边距:8px;
}



>




< PHP
如果(message_true美元!=){ func_message($ message_true,true);}
如果(message_false美元!=){ func_message($ message_false,false);}
>

< PHP
为($ NB = 1;铌< muilti_file_upload美元美元;铌+ +){
>

上载文件:>
新文件名(包括扩展名):



上传的目的地址:


< PHP
美元= opendir(file_upload_dir)曲目;
而($文件= readdir($剧目)){
文件大小= str_replace(' ',' ',文件);
如果(is_dir(文件)){
>

< PHP
}
}
closedir($曲目);
>


文件