本笔记中代码运行环境为Wampserver-3.2.9
前端上传文件代码
文件上传
如果需要保存大文件,需要在后端保存文件前,对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
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的设置,如果设置不正确会导致在文件上传过程中出现错误。
来源地址:https://blog.csdn.net/RKKY_YY/article/details/127532793