introduction
本文主要在一次开发过程中遇到的PHP
上传的一些坑,主要是新环境的phpinfo
参数设置和模块问题。
1. PHP上传失败
贴一下主要源代码
// 解析文件
$inputFileType = PHPExcel_IOFactory::identify($_FILES['file']['tmp_name']);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($_FILES['file']['tmp_name']);
for ($table = 0; $table <= 1; ++$table) {
$curSheet = $objPHPExcel->getSheet($table);
$rows = $curSheet->getHighestRow();
$currencies = [];
if ($table == 0){
$type = 3;//主题e
}
else{
$type = 5;//盘口
}
for ($rowsIndex = 2; $rowsIndex <= $rows; ++$rowsIndex) {
$temp = [];
$id = $curSheet->getCell('G' . $rowsIndex)->getValue();
$time = $curSheet->getCell('K' . $rowsIndex)->getValue();
$reason = $curSheet->getCell('R' . $rowsIndex)->getValue();
// 现在去block表通过code找id
}
}
过程:
上传的时候$FILES
[‘file'
][‘tmp
name'
]一直为空,$FILES
[‘file'
][‘name'
]正常,$FILES
[‘file'
][‘size'
]为0,/tmp
目录下也没有临时文件生成,这里稍微上网找了一下,运行php
info
,发现是php
info
里面的post
max
size
的值可能太小,发现我的预设值是8M
,而文件时4M
,做了一番测试发现不是
这个问题。
又仔细瞧了一番php
info
,最后发现pload
max
filesize
的值为2M
,最后设为40M
,成功上传到临时目录,上面出现的问题也没有了,但是运行到$objPHPExcel
= $objReader-
>load
($FILES
[‘file'
][‘tmp
_name'
]); 又报错。。。错误大概是不能超过128M
,但是我的文件只有4M
,
实在没办法了,求助。
最后把php
_info
的memory
_limit值改为512M才没报错,成功运行。然后又报错。。不过这个错误很明显”no model name xxx”,装了个zip扩展成功读取。
2.PHP查看php
_info
php
_info
即php
.ini
文件再PHP
开发中十分重要,我们经常需要去查看它,但是有时候我们不知道它的位置。我最喜欢的一种方法是通过PHP -S localhost 命令去监听,然后查看php_info。
1.首先新建一个php_info.php文件,内容
<?php
phpinfo();
2.当前目录运行PHP
-S
localhost
3.浏览器访问localhost