首页 > 其他分享 >uploadlabs-Pass-02代码注释

uploadlabs-Pass-02代码注释

时间:2023-03-04 10:56:49浏览次数:48  
标签:02 FILES name uploadlabs upload file Pass msg 上传

<?php
include '../config.php';
include '../head.php';
include '../menu.php';

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {//判断提交的submit是不是为空,isset() 函数用于检测变量是否已设置并且非 NULL。
if (file_exists(UPLOAD_PATH)) {
//判断存放文件路径是否存在
if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif')) {
//通过使用 PHP 的全局数组 $_FILES,你可以从客户计算机向远程服务器上传文件。
//
//第一个参数是表单的 input name,第二个下标可以是 "name"、"type"、"size"、"tmp_name" 或 "error"。如下所示:
//
// $_FILES["file"]["name"] - 上传文件的名称
// $_FILES["file"]["type"] - 上传文件的类型
// $_FILES["file"]["size"] - 上传文件的大小,以字节计
// $_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
// $_FILES["file"]["error"] - 由文件上传导致的错误代码

$temp_file = $_FILES['upload_file']['tmp_name'];
$img_path = UPLOAD_PATH . '/' . $_FILES['upload_file']['name'];
if (move_uploaded_file($temp_file, $img_path)) {
//move_uploaded_file() 函数将上传的文件移动到新位置。
//
//若成功,则返回 true,否则返回 false。
//file 必需。规定要移动的文件。
//newloc 必需。规定文件的新位置。
$is_upload = true;
} else {
$msg = '上传出错!';
}
} else {
$msg = '文件类型不正确,请重新上传!';
}
} else {
$msg = UPLOAD_PATH.'文件夹不存在,请手工创建!';
}
}
?>

<div id="upload_panel">
<ol>
<li>
<h3>任务</h3>
<p>上传一个<code>webshell</code>到服务器。</p>
</li>
<li>
<h3>上传区</h3>
<form enctype="multipart/form-data" method="post" onsubmit="return checkFile()">
<p>请选择要上传的图片:<p>
<input class="input_file" type="file" name="upload_file"/>
<input class="button" type="submit" name="submit" value="上传"/>
</form>
<div id="msg">
<?php
if($msg != null){
echo "提示:".$msg;
}
?>
</div>
<div id="img">
<?php
if($is_upload){
echo '<img src="'.$img_path.'" width="250px" />';
}
?>
</div>
</li>
<?php
if($_GET['action'] == "show_code"){
include 'show_code.php';
}
?>
</ol>
</div>

<?php
include '../footer.php';
?>

标签:02,FILES,name,uploadlabs,upload,file,Pass,msg,上传
From: https://www.cnblogs.com/lp214/p/17177840.html

相关文章

  • 普冉PY32系列(六) 通过I2C接口驱动PCF8574扩展的1602LCD
    目录普冉PY32系列(一)PY32F0系列32位CortexM0+MCU简介普冉PY32系列(二)UbuntuGCCToolchain和VSCode开发环境普冉PY32系列(三)PY32F002A资源实测-这个型号不简......
  • 2023.3.4——软件工程日报
    所花时间(包括上课):0h代码量(行):0行博客量(篇):1篇今天,上午学习计算机网络与概率论,下午学习web技术。我了解到的知识点:1.了解了一些python的知识:python学习——set集合,sorte......
  • 2023.3.4Leecode982按位与为零的三元组
    题目的要求给你一个整数数组nums,返回其中按位与三元组的数目。按位与三元组是由下标(i,j,k)组成的三元组,并满足下述全部条件:0<=i<nums.length0<=j<num......
  • 2023年03月编程语言流行度排名
    点击查看最新编程语言流行度排名(每月更新)2023年03月编程语言流行度排名编程语言流行度排名是通过分析在谷歌上搜索语言教程的频率而创建的一门语言教程被搜索的次数越多......
  • 2023年03月IDE流行度最新排名
    点击查看最新IDE流行度最新排名(每月更新)2023年03月IDE流行度最新排名顶级IDE排名是通过分析在谷歌上搜索IDE下载页面的频率而创建的一个IDE被搜索的次数越多,这个IDE就被......
  • 2023年03月数据库流行度最新排名
    点击查看最新数据库流行度最新排名(每月更新)2023年03月数据库流行度最新排名TOPDB顶级数据库索引是通过分析在谷歌上搜索数据库名称的频率来创建的一个数据库被搜索的次......
  • 2023年03月在线IDE流行度最新排名
    点击查看最新在线IDE流行度最新排名(每月更新)2023年03月在线IDE流行度最新排名TOP在线IDE排名是通过分析在线ide名称在谷歌上被搜索的频率而创建的在线IDE被搜索的次数......
  • mockjs_axios_vue_learn_2023-03-03 23:33:34
    mockjsvuelearn/Users/song/Downloads/vue3_demo_mockjs-master/__mock_learn/mock_learn/index.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="......
  • 2023/3/3
    在Android应用程序开发中,Fragment和广播是两个非常重要的概念。Fragment可以看作是一种模块化的UI组件,它允许开发者将应用程序UI拆分成多个独立的部分,以便在不同的......
  • 2023训练3
    训练地址:vjudge链接C.Min-MaxArrayTransformation其实我们可以从题目中看出,主要是求解两个问题。第一个求解问题,\(d_{min}\),对于每一个\(a_i\),第一个大于其的\(b_i\)......