从建站打拿站 -- PHP(文件上传)

简介: 从建站打拿站 -- PHP(文件上传)

一、上传文件

1、新建一个html网页,上传文件

enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用 "multipart/form-data"

<!DOCTYPE html>  <!-- 有助于浏览器中正确显示网页 -->
<html>  <!-- html页面开始标签 -->
<head>
<meta charset="UTF-8">  <!-- UTF-8编码  -->
<title>周杰伦</title> <!-- 标签页显示的内容 -->
</head>
<body style="text-align:center;">
<img src="1.jpg"> <!-- 插入一张图片 -->
<hr> <!-- 水平线 -->
<h1>上传文件</h1>
<form action="../php/sc.php" method="post" enctype="multipart/form-data">
选择上传文件:<input type="file" name="file" id="file" /><br>
<input type="submit" name="submit" value="上传" />
</body>
</html> <!-- html页面结束标签 -->

运行结果:

0a2653c851af460fa595bd959398a8f1.png

2、设置PHPstudy环境中临时文件的上传路径,从php配置文件设置

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
upload_tmp_dir =c:\test
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 2M
; Maximum number of files that can be uploaded via a single request
max_file_uploads = 20

3、编写上传文件的sc.php

move_uploaded_file:将临时的文件移动到其他地方,就相当于保存文件了

__DIR__;获取该脚本的当前目录

<meta charset="utf-8">
<?php
echo "<pre>";
if(isset($_POST['submit'])){
    //var_dump($_FILES);
    $tmp=$_FILES['file']['tmp_name'];//获取上传文件的临时目录名称
    $path=__DIR__."\\".$_FILES['file']['name'];//设置文件上传到的位置
    if(move_uploaded_file($tmp,$path)){
        echo "上传成功";
    }else{
        echo "上传失败";
    }
}
?>

4、为上传的文件增加验证,比如至允许上传图片,且大小不超过20000字节

<meta charset="utf-8">
<?php
if(isset($_POST['submit'])){
    $tmp=$_FILES['file']['tmp_name'];//获取上传文件的临时目录名称
    $path=__DIR__."\\".$_FILES['file']['name'];//设置文件上传到的位置
    //echo $tmp;
    //echo $path;
    if ((($_FILES["file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 20000)){            
            if(move_uploaded_file($tmp,$path)){
                     echo "上传成功";
            }else{
        echo "上传失败";
    }            
    }else{    
    echo "上传文件类型有误";
    }    
}else{
    echo "请通过表单提交";    
    }
?>

禁止非法,后果自负

目录
相关文章
|
3月前
|
前端开发 PHP
从建站到拿站 -- PHP基础
从建站到拿站 -- PHP基础
23 0
|
3月前
|
安全 PHP
从建站到拿站 -- PHP(Cookie设置)
从建站到拿站 -- PHP(Cookie设置)
21 0
|
10天前
|
关系型数据库 MySQL
web简易开发(二){html5+php实现文件上传及通过关键字搜索已上传图片)}
web简易开发(二){html5+php实现文件上传及通过关键字搜索已上传图片)}
|
12天前
|
安全 PHP
【PHP开发专栏】PHP文件上传与下载实现
【4月更文挑战第30天】本文介绍了在PHP中实现文件上传和下载的详细步骤。文件上传通过`$_FILES`全局数组处理,包括设置HTML表单、PHP脚本处理上传及安全性考虑。文件下载则可使用`readfile()`、`fpassthru()`或`file_get_contents()`函数,同时关注安全问题,如防止目录遍历漏洞。文中还提供了一个简单的图片分享网站案例,演示了上传和下载功能的集成。
|
3月前
|
PHP
从建站打拿站 -- PHP(文件上传)
从建站打拿站 -- PHP(文件上传)
14 0
|
3月前
|
安全 PHP 数据库
从建站打拿站 -- PHP(登录和注册)
从建站打拿站 -- PHP(登录和注册)
16 1
|
3月前
|
PHP
从建站到拿站 -- PHP判断循环及函数
从建站到拿站 -- PHP判断循环及函数
14 0
|
3月前
|
安全 PHP 数据库
从建站打拿站 -- PHP(GET和POST)
从建站打拿站 -- PHP(GET和POST)
14 0
|
8月前
|
关系型数据库 MySQL PHP
PHP 原生操作 Mysql
PHP 原生操作 Mysql
82 0