您的位置 首页 php

PHP HTTP文件上传变量$_FILES

1.一个简单的文件上传

例:

upload_file.html

<html>

<head>

<title>upload_file.html</title><!–标题名称为upload_file.html–>

<meta charset=”utf-8″><!–外部脚本文件中使用的 字符编码 为utf-8 中文–>

</head>

<body>

<form enctype=”multipart/form-data” action=”upload_file.php” method=”post”><!–使用POST的方式上传文件,并传递给upload_file.php处理–>

<input type=”hidden” name=”MAX_ file _SIZE” value=”32000″ /><!–表示此表单中上传文件每个都不能超过32000个字节–>

上传文件: <input name=”sendfile” type=”file” /><br /><!–表示上传的是文件类型,并将上传文件的详细信息存储在$_FILWS[‘sendfile’]中–>

<input type=”submit” value=”上 传” /><!–表单上传按钮–>

</form>

</body>

</html>

upload_file.php

<?php

print “<pre>”;

$store_dir = ‘d:\\wamp64\www\phptest\upload\\’;//文件上传后存储在服务器的路径

$uploadfile = “$store_dir”.basename($_FILES[‘sendfile’][‘name’]);//上传文件的原始名字

$uploadfile_tmp = $_FILES[‘sendfile’][‘tmp_name’]; //上传文件的临时名字

$err_msg = $_FILES[‘sendfile’][‘error’]; //上传文件时产生的错误信息

if ( $err_msg ) { //如果存在错误代码则打印出来

print “错误代码:$err_msg<br>”;

}

if (!is_writeable($store_dir)){//检查上传文件夹是否可写,不可写则打印错误信息并退出

print “$store_dir 目录不可写\n”;

exit;

}

else {

print “$store_dir 目录可写\n”; //可写则打印正确信息

}

if ( isset ($_FILES[‘sendfile’]) ) {//检查上传文件是否存在,如存在则对其进行下一步操作

if (is_uploaded_file($uploadfile_tmp)) {

print “文件检验成功\n”;

}

else {

print “文件检验失败,可能遭受文件上传攻击!”;

exit;

}

if (move_uploaded_file($uploadfile_tmp, $uploadfile)) {//对上传的合法文件,将其重命名并移动服务器的上传文件夹中

print “文件移动成功\n”;

}

else {

print “移动文件失败,可能遭受文件上传攻击!”;

exit;

}

print “文件上载成功!<br>”;

}

else {

print “文件上载失败! <br>”;

}

print ‘$_FILES=’;

print_r($_FILES);//打印$_FILES数组信息

print “</pre>”;

?>

结果:

2.俩个文件同时上传

例:

upload_file_m.html

<html>

<head>

<title>upload_file.html</title><!–标题名称为upload_file.html–>

<meta charset=”utf-8″><!–外部脚本文件中使用的字符编码为utf-8 中文–>

</head>

<body>

<form enctype=”multipart/form-data” action=”upload_file_m.php” method=”post”><!–使用POST的方式上传文件,并传递给upload_file_m.php处理–>

<input type=”hidden” name=”MAX_FILE_SIZE” value=”1000″ /><!–表示此表单中上传文件每个都不能超过1000个字节–>

上传文件1: <input name=”sendfile[]” type=”file” /><br /><!–表示上传的是文件类型,并将上传文件的详细信息存储在$_FILWS[‘sendfile’]中–>

上传文件2: <input name=”sendfile[]” type=”file” /><br />

<input type=”submit” value=”上 传” /><!–表单上传按钮–>

</form>

</body>

</html>

upload_file_m.php

<?php

print “<pre>”;

$store_dir = ‘d:\\wamp64\www\phptest\upload\\’;//文件上传后存储在服务器的路径

foreach ($_FILES[“sendfile”][“error”] as $key => $error) { //遍历方式取出上传文件变量数组$_FILES[‘sendfile’]中每个error值

if ($error == UPLOAD_ERR_OK) {

$uploadfile_tmp = $_FILES[‘sendfile’][‘tmp_name’][$key];

$uploadfile = “$store_dir”. basename($_FILES[‘sendfile’][“name”][$key]);

move_uploaded_file( $uploadfile_tmp, $uploadfile );//利用循环移动上传所有文件,从而实现对文件的保存

}

}

print ‘$_FILES=’;

print_r($_FILES);//打印$_FILES数组信息

print “<pre>”;

?>

结果:

文章来源:智云一二三科技

文章标题:PHP HTTP文件上传变量$_FILES

文章地址:https://www.zhihuclub.com/80403.shtml

关于作者: 智云科技

热门文章

发表评论

您的电子邮箱地址不会被公开。

网站地图