0

我有以下代码将文件上传到文件夹,根据文件输入上传文件被重命名,例如第一个输入-图片重命名为picture01.jpg,第五个输入-图片重命名为图片到picture01。 jpg等...

<form action="upload_file.php" enctype="multipart/form-data" method="POST">
    <p><input name="image01" type="file"> </p>
    <p><input name="image02" type="file"> </p>
    <p><input name="image03" type="file"> </p>
    <p><input name="image04" type="file"> </p>
    <p><input name="image05" type="file"> </p>
    <input type="submit" value="Upload File">
</form>

这是upload_file.php -

<?php 

$pic_names = array (
    '01' => 'picture01',
    '02' => 'picture02',
    '03' => 'picture03',
    '04' => 'picture04',
    '05' => 'picture05',
                    );


$folder = "temp_images/"; 

if(preg_match("/(jpg|jpeg|png|gif|mp3|mp4)/",$ext)) {
// Picture01
$image_path01 = $folder . $pic_names['01'] . '.jpg';
move_uploaded_file($_FILES['image01']['tmp_name'], $image_path01);
// Picture02
$image_path02 = $folder . $pic_names['02'] . '.jpg';
move_uploaded_file($_FILES['image02']['tmp_name'], $image_path02);
// Picture03
$image_path03 = $folder . $pic_names['03'] . '.jpg';
move_uploaded_file($_FILES['image03']['tmp_name'], $image_path03);
// Picture04
$image_path04 = $folder . $pic_names['04'] . '.jpg';
move_uploaded_file($_FILES['image04']['tmp_name'], $image_path04);
// Picture05
$image_path05 = $folder . $pic_names['05'] . '.jpg';
move_uploaded_file($_FILES['image05']['tmp_name'], $image_path05);

    echo 'Uploaded successfully!';
   } else { echo 'Uploaded successfully!';}
    ?>

我想在上传文件之前检查是否存在以下扩展名之一,然后再上传 jpg、gif 或 png。如果他们有另一个扩展名,则不会上传它并给出错误。

我设法找到的唯一解决方案是输入 name=" image " type="file"> 具有相同的名称,例如在这种情况下为 name。对于输入的不同名称,我该如何处理?

我收到以下错误:PHP Parse error: syntax error, unexpected T_ELSE

虽然我确信它不仅仅是一个解析错误。

请问有什么建议或帮助吗?

更新:我修改了代码,但它告诉我“错误的文件类型!” 也适用于任何图像格式。

4

2 回答 2

1

错误在于字符串echo 'Uploaded successfully!';{位置和内容。

}1)和之间不允许有任何语句else

2)'Uploaded successfully!';{包含{哪些是多余的。

更新:处理上传文件的一种很好的方法。取决于 OP 中的 $pic_names 数组。

$pic_names = array (
    '01' => 'picture01',
    '02' => 'picture02',
    '03' => 'picture03',
    '04' => 'picture04',
    '05' => 'picture05',
);

$allowed_mime = array(
    'image/jpeg' => 'jpg',
    'image/pjpeg' => 'jpg',
    'image/gif' => 'gif',
    'image/png' => 'png',
);

$upload_messages = array(
    UPLOAD_ERR_OK => ' Uploaded successfully!',
    UPLOAD_ERR_INI_SIZE => ' The uploaded file exceeds the maxumum size of ' . ini_get('upload_max_filesize') . '.',
    UPLOAD_ERR_PARTIAL => ' The uploaded file was only partially uploaded.',
    UPLOAD_ERR_NO_FILE => ' No file was uploaded',
    UPLOAD_ERR_NO_TMP_DIR => ' Missing a temporary folder.',
    UPLOAD_ERR_CANT_WRITE => ' Failed to write file to disk.',
    UPLOAD_ERR_EXTENSION => ' A PHP extension stopped the file upload.',
    100 => ' Wrong file type.',
);

$folder = "temp_images/"; 

$error_message = $success_message = '';
$upload_counter = 0;

foreach ($pic_names as $key => $value) {
    if (isset($_FILES['image'.$key]) && !$_FILES['image'.$key]['error']) {
        $file_mime = getFileMime($_FILES['image'.$key]['tmp_name']);

        if ( in_array($file_mime, array_keys($allowed_mime)) ) {
            $new_path = $folder . $value . '.' . $allowed_mime[$file_mime];

            if ( !move_uploaded_file($_FILES['image'.$key]['tmp_name'], $new_path) ) {
                $error_message .= ' Image' . $key . ':' . $upload_messages[UPLOAD_ERR_CANT_WRITE];
            } else {
                $upload_counter++;
            }
        } else {
            $error_message .= ' Image' . $key . ':' . $upload_messages[100];
        }
    } else {
        $error_message .= ' Image' . $key . ':' . ($_FILES['image'.$key]['error'] ? $upload_messages[$_FILES['image'.$key]['error']] : $upload_messages[UPLOAD_ERR_NO_FILE]);
    }
}

if ( $upload_counter == count($pic_names) ) {
    echo $upload_messages[UPLOAD_ERR_OK];
} else {
    echo 'Loaded ' . $upload_counter . ' file' . ($upload_counter != 1 ? 's' : '') . '.' . $error_message;
}

function getFileMime ($file) {
    if (PHP_VERSION >= '5.3.0') {
        $finfo = new finfo(FILEINFO_MIME_TYPE);
        return $finfo->file($file);
    } else {
        return mime_content_type($file);
    }
}
于 2013-10-06T21:04:40.990 回答
0

改变

echo 'Uploaded successfully!';{
else { echo 'Uploaded successfully!';}

echo 'Uploaded successfully!';
} else { echo 'Wrong file type';}
于 2013-10-06T21:02:50.770 回答