PHP 文件上传前后端代码(笔记)

本笔记中代码运行环境为Wampserver-3.2.9

前端上传文件代码

<html>
<head>
<meta charset="utf-8">
<title>文件上传</title>
</head>
<body>
<form action="fileUpload.php" method="post" enctype="multipart/form-data">
<label for="file">文件名:</label>
<input type="file" name="biddingDoc" id="file"><br>
<input type="submit" name="submit" value="提交">
</form>
</body>
</html>

如果需要保存大文件,需要在后端保存文件前,对php.ini配置文件进行修改 。

第一步、在wampserver文件bin目录中找到对应版本的apache目录

 

 第二步、在apache的bin目录中找到php.ini文件并打开

 

 第三步、查找并修改其中的memory_list、post_max_size、upload_max_filesize三项

首先在php.ini文件中查找file_uploads项,如果为off则设置为On。不开启此项无法进行文件上传。

找到upload_max_filesize项,然后根据需要传输的文件大小进行配置(默认为2M),如:需上传文件为200M,则设置200M或略高于200M.

找到post_max_size项并将大小设置为高于上一项的值。

最后找到memory_list设置大小高于前面两项。

以上三项配置的相关信息

upload_max_filesize ----上传文件的最大尺寸,设为0则代表无限制。

post_max_size ----通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。如果数据超出了设置的大小,那么$_FILES和$_POST都会为空,导致获取失败。设为0则代表无限制。

memory_list ----这个选项用来设置单个PHP脚本所能申请到的最大内存空间。设为-1则代表无限制。

在配置这三项时要始终保证memory_limit > post_max_size > upload_max_filesize,否则在文件上传时会出现问题。

在php.ini中的其他和文件上传的相关项

upload_tmp_dir ----为上传文件的临时存放位置,默认为空。在wampserver环境中默认为wampserver根目录中的tmp文件。upload_tmp_dir = "D:/file/temp" (注意在填写路径时使用的是斜杠"/")。

max_execution_time ----为每个PHP页面运行的最大时间值(单位秒),在我们需要上传大文件时,需要耗费更多时间。如果运行超过了该项设置的时间则会停止脚本运行导致上传文件失败,所以要考虑实际情况修改该项值,如果设为0则表示无时间限制。

后端PHP代码,PHP文件名为fileUpload.php 

<?php
//首先需要根据需要上传文件的大小,设置Apache中php.ini的参数。保证参数 memory_limit > post_max_size > upload_max_filesize

  function fileUpload(){
        if (isset($_FILES['biddingDoc'])) {
            $file = $_FILES['biddingDoc'];
            if (is_uploaded_file($file['tmp_name'])) { //判断是否已上传到临时路径中
                $docName = $_FILES['biddingDoc']['name']; //获取文件名
                $suffixName = explode('.', $docName)[1]; //获取文件后缀名
                if (in_array($suffixName, ['xlsx', 'xls', 'docx', 'doc']) === false) {   //判断是否为可上传文件类型
                    echo '文件类型不允许';
                } else {
                    if (move_uploaded_file($file['tmp_name'], 'E:/Wampserver/www/文件保存/' . $file['name'])) {
                        echo '文件保存成功!';
                    } else {
                        echo '文件保存失败!';
                    }
                }
            } else {
                echo '上传失败';
            }
        } 
    }
fileUpload();
?>

总结

以上就是这次笔记的全部内容,需要着重注意php.ini的设置,如果设置不正确会导致在文件上传过程中出现错误。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值