【发布时间】:2015-02-20 14:00:26
【问题描述】:
我设计了一个表单来使用 PHP 上传多个图像,我想检查图像的类型和大小。 但是我的代码无法成功运行。 如何更正代码?
HTML 输入文件(部分文件上传):
<input type="file" class="test" name="file_array[]">
<input type="file" class="test" name="file_array[]">
PHP 代码
<?php
if (isset($_FILES['file_array'])) {
$name_array = $_FILES['file_array']['name'];
$tmp_name_array = $_FILES['file_array']['tmp_name'];
$type_array = $_FILES['file_array']['type'];
$size_array = $_FILES['file_array']['size'];
$allowedTypes = array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF);
$detectedType = exif_imagetype($tmp_name_array);
$checktype = in_array($detectedType, $allowedTypes);
}
if ($checktype == false) {
echo "type error";
echo "</br>";
} elseif ($size_array > 2097152) {
echo "type error";
echo "</br>";
} else {
for ($i = 0; $i < count($tmp_name_array); $i++) {
if (move_uploaded_file(
$tmp_name_array[$i], "upload/" . $name_array[$i]
)
) {
echo $name_array[$i] . " upload is complete<br>";
} else {
echo "function failed for " . $name_array[$i] . "<br>";
}
}
}
?>
【问题讨论】:
-
您应该将名称
file_array[]设置为file_array- 因为名称实际上不是一个数组,它是对发布到脚本的对象的引用。
标签: php