临时目录的原始文件不是360的合法文件_PHP HTTP文件上传变量$_FILES

1.一个简单的文件上传

例:

upload_file.html

upload_file.html

上传文件:

upload_file.php

print "

";

$store_dir = 'd:wamp64wwwphptest甥汰慯d';//文件上传后存储在服务器的路径

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

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

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

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

print "错误代码:$err_msg
";

}

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

print "$store_dir 目录不可写";

exit;

}

else {

print "$store_dir 目录可写"; //可写则打印正确信息

}

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

if (is_uploaded_file($uploadfile_tmp)) {

print "文件检验成功";

}

else {

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

exit;

}

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

print "文件移动成功";

}

else {

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

exit;

}

print "文件上载成功!
";

}

else {

print "文件上载失败!
";

}

print '$_FILES=';

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

print "

";

?>

结果:

3facda869238b834442d8ac89a02fef8.png
beccd0ecc9cdc37fef50d3621e663e9a.png

2.俩个文件同时上传

例:

upload_file_m.html

upload_file.html

上传文件1:

上传文件2:

upload_file_m.php

print "

";

$store_dir = 'd:wamp64wwwphptest甥汰慯d';//文件上传后存储在服务器的路径

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 "

";

?>

结果:

f1032045fddfde16228007bf2e2eb8b5.png
d2ab3a83982cc41ce31e500f3c14f04f.png
$_FILES是一个PHP超全局变量,用于在上传文件时获取上传的文件信息。$_FILES数组的用法是通过HTML表单中的<input type="file">将文件上传到web服务器,然后通过PHP脚本使用$_FILES数组来处理上传的文件。 关于多文件上传,可以通过在HTML表单中添加多个<input type="file">元素来实现。在PHP脚本中,$_FILES数组会自动处理多个上传文件。在处理多个上传文件时,$_FILES数组中的每个文件都有自己的键名。例如,如果有两个上传文件,其键名分别为file1和file2,则可以使用以下代码访问它们: ``` $file1 = $_FILES["file1"]; $file2 = $_FILES["file2"]; ``` 值得注意的是,$_FILES数组中的每个上传文件都有自己的属性。常见的属性包括:name、type、size、tmp_name和error。其中,name属性表示文件原始名称,type属性表示文件的MIME类型,size属性表示文件的大小(以字节为单位),tmp_name属性表示文件在web服务器上的临时存储位置,error属性表示上传过程中是否出错。 在PHP脚本中,可以使用move_uploaded_file()函数将上传的文件临时位置移动到指定的位置。例如,以下代码将上传的文件临时位置移动到web服务器上的/uploads目录中: ``` $target_dir = "/uploads/"; $target_file = $target_dir . basename($_FILES["file"]["name"]); if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) { echo "文件上传成功"; } else { echo "文件上传失败"; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值