PHP 文件上传丢失 tmp_name
PHP file upload missing tmp_name
我为 windows 下载并安装了 xampp。当我尝试将图片、视频或音乐上传到 php 中的本地主机时,我只得到 $_FILE['some_file'][name] 我没有得到 [size]、[type]、[error] 和大多数对我的 [tmp_name] 很重要。但是当我尝试上传一些 .rar 文件或一些文档时,我得到了所有这些文件信息。这是我尝试上传一些音乐文件时得到的结果:
Array
(
[name] => Array
(
[0] => Blondee – Moment (Original Mix) www.livingelectro.com.mp3
[1] => Eli & Fur – Turn The Lights Down www.livingelectro.com.mp3
[2] => Fake Forward Ft. CHRYSTAL - Brush It Off (Club Mix) www.livingelectro.com.mp3
)
[type] => Array
(
[0] =>
[1] =>
[2] =>
)
[tmp_name] => Array
(
[0] =>
[1] =>
[2] =>
)
[error] => Array
(
[0] => 1
[1] => 1
[2] => 1
)
[size] => Array
(
[0] => 0
[1] => 0
[2] => 0
)
)
[type]和[tmp_name]为空,[error]显示错误,[size]显示0kb。
但是当我尝试上传一些 rar 文件时一切正常:
Array
(
[name] => Array
(
[0] => Aaargh.zip
[1] => afta-sans.zip
[2] => armata.zip
)
[type] => Array
(
[0] => application/octet-stream
[1] => application/octet-stream
[2] => application/octet-stream
)
[tmp_name] => Array
(
[0] => C:\xampp\tmp\php95EE.tmp
[1] => C:\xampp\tmp\php95FF.tmp
[2] => C:\xampp\tmp\php9600.tmp
)
[error] => Array
(
[0] => 0
[1] => 0
[2] => 0
)
[size] => Array
(
[0] => 13835
[1] => 32570
[2] => 26454
)
)
这是我的索引代码:
<?php
$files = $_FILES["postFile"];
echo '<pre>';
print_r($files);
echo '</pre></br></br>';
?>
如果您注意到其中没有填充所有出现的数组,您确实会看到所有上传的文件都被标记为错误!
[error] => Array
(
[0] => 1
[1] => 1
[2] => 1
)
1 = UPLOAD_ERR_INI_SIZE
这就是为什么 none 的其他字段包含您期望的内容。
在对上传的文件进行任何操作之前,您必须始终检查错误数组。
您需要检查 php.ini
文件中的此参数并可能增加最大大小。
upload_max_filesize = ?
很可能还有这个。
post_max_size = ?
post_max_size
需要足够大以应对 upload_max_filesize * number of files uploaded
+ 几 k 以应对同时传递的其他字段和一般开销。
......
我为 windows 下载并安装了 xampp。当我尝试将图片、视频或音乐上传到 php 中的本地主机时,我只得到 $_FILE['some_file'][name] 我没有得到 [size]、[type]、[error] 和大多数对我的 [tmp_name] 很重要。但是当我尝试上传一些 .rar 文件或一些文档时,我得到了所有这些文件信息。这是我尝试上传一些音乐文件时得到的结果:
Array
(
[name] => Array
(
[0] => Blondee – Moment (Original Mix) www.livingelectro.com.mp3
[1] => Eli & Fur – Turn The Lights Down www.livingelectro.com.mp3
[2] => Fake Forward Ft. CHRYSTAL - Brush It Off (Club Mix) www.livingelectro.com.mp3
)
[type] => Array
(
[0] =>
[1] =>
[2] =>
)
[tmp_name] => Array
(
[0] =>
[1] =>
[2] =>
)
[error] => Array
(
[0] => 1
[1] => 1
[2] => 1
)
[size] => Array
(
[0] => 0
[1] => 0
[2] => 0
)
)
[type]和[tmp_name]为空,[error]显示错误,[size]显示0kb。
但是当我尝试上传一些 rar 文件时一切正常:
Array
(
[name] => Array
(
[0] => Aaargh.zip
[1] => afta-sans.zip
[2] => armata.zip
)
[type] => Array
(
[0] => application/octet-stream
[1] => application/octet-stream
[2] => application/octet-stream
)
[tmp_name] => Array
(
[0] => C:\xampp\tmp\php95EE.tmp
[1] => C:\xampp\tmp\php95FF.tmp
[2] => C:\xampp\tmp\php9600.tmp
)
[error] => Array
(
[0] => 0
[1] => 0
[2] => 0
)
[size] => Array
(
[0] => 13835
[1] => 32570
[2] => 26454
)
)
这是我的索引代码:
<?php
$files = $_FILES["postFile"];
echo '<pre>';
print_r($files);
echo '</pre></br></br>';
?>
如果您注意到其中没有填充所有出现的数组,您确实会看到所有上传的文件都被标记为错误!
[error] => Array
(
[0] => 1
[1] => 1
[2] => 1
)
1 = UPLOAD_ERR_INI_SIZE
这就是为什么 none 的其他字段包含您期望的内容。
在对上传的文件进行任何操作之前,您必须始终检查错误数组。
您需要检查 php.ini
文件中的此参数并可能增加最大大小。
upload_max_filesize = ?
很可能还有这个。
post_max_size = ?
post_max_size
需要足够大以应对 upload_max_filesize * number of files uploaded
+ 几 k 以应对同时传递的其他字段和一般开销。
......