首页 > 编程语言 >PHP: upload file

PHP: upload file

时间:2023-05-06 15:25:00浏览次数:34  
标签:FILES name fileToUpload upload echo file PHP

 

<!DOCTYPE html>
<html>
<body>

<form action="uploadImage.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
    <input type="text" value="" id="imagename">
</form>
</body>
</html>

  

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}

// Check if file already exists
if (file_exists($target_file)) {
    echo "Sorry, file already exists.";
    $uploadOk = 0;
}

// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000000000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}

// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
    && $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    $uploadOk = 0;
}

// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "The file ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " has been uploaded."; //上传成功,和文件名称
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}
?>

  

<?php
// 允许上传的图片后缀
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["fileToUpload"]["name"]);
    echo $_FILES["fileToUpload"]["size"];
    $extension = end($temp);     // 获取文件后缀名
if ((($_FILES["fileToUpload"]["type"] == "image/gif")
|| ($_FILES["fileToUpload"]["type"] == "image/jpeg")
|| ($_FILES["fileToUpload"]["type"] == "image/jpg")
|| ($_FILES["fileToUpload"]["type"] == "image/pjpeg")
|| ($_FILES["fileToUpload"]["type"] == "image/x-png")
|| ($_FILES["fileToUpload"]["type"] == "image/png"))
&& ($_FILES["fileToUpload"]["size"] < 204800000)   // 小于 200 kb
&& in_array($extension, $allowedExts))
{
    if ($_FILES["fileToUpload"]["error"] > 0)
    {
        echo "错误:: " . $_FILES["fileToUpload"]["error"] . "<br>";
    }
    else
    {
        echo "上传文件名: " . $_FILES["fileToUpload"]["name"] . "<br>";
        echo "文件类型: " . $_FILES["fileToUpload"]["type"] . "<br>";
        echo "文件大小: " . ($_FILES["fileToUpload"]["size"] / 1024) . " kB<br>";
        echo "文件临时存储的位置: " . $_FILES["fileToUpload"]["tmp_name"] . "<br>";

        // 判断当前目录下的 upload 目录是否存在该文件
        // 如果没有 upload 目录,你需要创建它,upload 目录权限为
        if (file_exists("uploads/" . $_FILES["fileToUpload"]["name"]))
        {
                echo $_FILES["fileToUpload"]["name"] . " 文件已经存在。 ";
        }
        else
        {
            //$name = $_POST['name'];
            $time = date("Y_m_d")."_".time() ;
            $img = basename($_FILES["fileToUpload"]["name"]);
            $imgfull=$_FILES["fileToUpload"]["name"];
            $targetDir = "uploads/";
            $extensionName=explode('.',$imgfull);
            //echo $extensionName[1];
            //$file_name = $time."_".$img;
            $file_name = $time.".".$extensionName[1];
            $targetFilePath = $targetDir . $file_name;

            move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $targetFilePath);
            echo "rename:".$targetFilePath;
            // 如果 uploads 目录不存在该文件则将文件上传到 uploads 目录下 不改名
            //move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], "uploads/" . $_FILES["fileToUpload"]["name"]);
            // echo "文件存储在: " . "uploads/" . $_FILES["fileToUpload"]["name"];

        }
    }
}
else
{
    echo "非法的文件格式";
}
?>

  

标签:FILES,name,fileToUpload,upload,echo,file,PHP
From: https://www.cnblogs.com/geovindu/p/17377426.html

相关文章

  • c# 使用ajaxfileupload上传文件,通过一般处理程序(Handler)接收文件
    界面如下图:HTML代码如下:<html><head><!--引入jqueryajaxfileupload.js--><!--ajaxfileupload.js为了兼容IE不同版本,需要修改源代码,文章附带源代码--><scriptsrc="../../Content/js/jquery/jquery-1.4.2.min.js"type="text/ja......
  • Web|[SWPUCTF 2018]SimplePHP
    访问是一个文件上传页面,点击查看文件页面可以发现特殊的链接,应该存在文件包含http://dfef288e-1b73-48e0-9458-a4e733c40c38.node4.buuoj.cn:81/file.php?file=查看源码发现一些文件,页面内容提示flag在f1ag.php中index.phpfile.phpupload_file.phpf1ag.php直接包含f1a......
  • PHP: split()
     <!DOCTYPEHTML><html><head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"><title>phpsplitTest</title></head><body><?php//fromhttps://www.ph......
  • thinkphp使用pgsql,提示table_msg函数缺失的解决方法
    thinkphp使用pgsql,提示table_msg函数缺失的解决方法 打开navicate,打开查询,执行下面代码就可以解决:CREATEORREPLACEFUNCTIONpgsql_type(a_typevarchar)RETURNSvarcharAS$BODY$DECLAREv_typevarchar;BEGINIFa_type='int8'THENv_type:......
  • filebeat+kafka_logstash+es进行日志分析
    filebeat+kafka_logstash+es进行日志分析目录一.将安装包上传至目标服务器(即日志所在的服务器)二.解压安装三.配置filebeat1.配置采集日志到logstash,这种配置适用于日志量较小的场景,Filebeat--->logstash,logstash直接解析filebeat2.配置采集日志至kafka,file......
  • TVM 中的 Profiler 设计
    一、基本用法首先看Profiler的用法:withms.Profiler()asprofiler:#....用户代码print("TuningTime:")print(profiler.table())二、前端接口设计其中Profiler类的设计是绑定和映射到了C++端的接口上。Profile提供了Context语义,支持with语句。@re......
  • dockerfile 多FROM
    Docker17.05版本以后,新增了Dockerfile多阶段构建。所谓多阶段构建,实际上是允许一个Dockerfile中出现多个 FROM 指令。这样做有什么意义呢?老版本Docker中为什么不支持多个FROM指令在17.05版本之前的Docker,只允许Dockerfile中出现一个FROM指令,这得从镜像的本质说起。在《Do......
  • C# WebUploader文件分片上传、断点续传
    1、添加引用<!--引入CSS--><linkrel="stylesheet"type="text/css"href="~/Scripts/webuploader-0.1.5/webuploader.css"><!--引入JS--><scripttype="text/javascript"src="~/Scripts/webuploader-0.1.5/w......
  • npm ERR! code EPERM npm ERR! syscall mkdir npm ERR! path C:\Program Files\node
    npm项目初始化代码npminit--yesidea代码安装npmnpmiexperss我输入的时候报错了,如下图所示没关系,只需要手动打开C盘的路径文件找到这个文件,并且把他Ctrl+D删除掉即可之后在运行这串代码就可以啦明显成功了......
  • php按照指定的尺寸压缩图片
    /****按照指定的尺寸压缩图片**@param$source_path原图路径**@param$imgWidth目标宽度**@param$imgHeight目标高度**@returnbool|string*/functionresize_image($source_path,$imgWi......