快捷搜索:

PHP新手上路(8)

7. 文件上传

你可以使用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):

Upload Your File

处置惩罚上载文件的PHP文件(receiver.php3)

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 ()

{

// 这里是你的页面内容

}

?>

php3 Receiving Script

$error_msg

"; }

if ( $sendit )

{

do_upload ();

echo "文件上载成功!";

}

elseif ( $cancelit )

{

header ( "Location: $some_other_script" );

echo "文件上载掉败!";

exit;

}

else

{

some_other_func ();

}

?>

您可能还会对下面的文章感兴趣: