如何在php

时间:2017-01-30 05:30:04

标签: php html

我有3个输入:

1。申请名称

2。背景图片

3。徽标照片

我从@mith那里得到了帮助。代码很棒。图像总是进入正确的文件夹。在将图像提交到文件夹后,我会调整代码以更改图像的名称。但我不知道这种情况有什么问题

$fieldname = ($key == 'image[]') ? 'image' : 'logo';
$filename  = $applicationName . '_' . $fieldname . '.' . 
          pathinfo($upload["tmp_name"], PATHINFO_EXTENSION);

$filename始终是徽标。我不知道为什么这种情况总是错误的。 因此,2个图像总是命名为applicationName_logo。请帮我看看。

HTML表单:



<form action="yong.php" method="POST" enctype="multipart/form-data">
    <h3>App name</h3>
    <input type="text" id="applicationName" name="applicationName">
    <h3>Background image</h3>
    <input type="file" id="image" name="image[]" multiple="multiple" accept="image/*" />
    <h3>Logo image</h3>
    <input type="file" id="logo" name="logo[]" multiple="multiple" accept="image/*" />
    <br>
    <br>
    <input type="submit">
</form>
&#13;
&#13;
&#13;

PHP代码:

    <?php
$valid_formats = array("jpg", "png", "gif", "zip", "bmp");
$max_file_size = 5000*100; //100 kb
$path = "home_dir/"; // Upload directory
$count = 0;

if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
// Loop $_FILES to exeicute all files

$applicationName = $_POST['applicationName'];
$sql_field_list  = ['applicationName'];
$sql_value_list  = [$applicationName];

foreach ($_FILES['image']['name'] as $f => $name) {
    if ($_FILES['image']['error'][$f] == 4) {
        continue; // Skip file if any error found
        echo "Skip file if any error found";
    }
    if ($_FILES['image']['error'][$f] == 0) {
        if ($_FILES['image']['size'][$f] > $max_file_size) {
            $message[] = "$name is too large!.";
            echo "$name is too large!.";
            continue; // Skip large files
        }
        elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
            $message[] = "$name is not a valid format";
            echo "$name is not a valid format";
            continue; // Skip invalid file formats
        }
        else{ // No error found! Move uploaded files
            $tmp_name  = $upload["tmp_name"];
            $parts     = explode('/', $upload['tmp_name']);
            $tmpName   = array_pop($parts);
            $fieldname = ($key == 'image[]') ? 'image' : 'logo';
            $filename  = $applicationName . '_' . $fieldname . '.' . pathinfo($upload["tmp_name"], PATHINFO_EXTENSION);
        }

            //if(move_uploaded_file($_FILES["image"]["tmp_name"][$f], $path.$filename.png))
            if(move_uploaded_file($_FILES["image"]["tmp_name"][$f], $path.'applicationName_bg/'.$filename.png))
                $count++; // Number of successfully uploaded file
            $message[] = "$name is uploaded";
            echo "$filename is uploaded";

    }
}

foreach ($_FILES['logo']['name'] as $f => $name) {
    if ($_FILES['logo']['error'][$f] == 4) {
        continue; // Skip file if any error found
        echo "Skip file if any error found";
    }
    if ($_FILES['logo']['error'][$f] == 0) {
        if ($_FILES['logo']['size'][$f] > $max_file_size) {
            $message[] = "$name is too large!.";
            echo "$name is too large!.";
            continue; // Skip large files
        }
        elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
            $message[] = "$name is not a valid format";
            echo "$name is not a valid format";
            continue; // Skip invalid file formats
        }
        else{ // No error found! Move uploaded files
            $tmp_name  = $upload["tmp_name"];
            $parts     = explode('/', $upload['tmp_name']);
            $tmpName   = array_pop($parts);
            $fieldname = ($key == 'image[]') ? 'image' : 'logo';
            $filename  = $applicationName . '_' . $fieldname . '.' . pathinfo($upload["tmp_name"], PATHINFO_EXTENSION);
        }

            //if(move_uploaded_file($_FILES["logo"]["tmp_name"][$f], $path.$filename.png))
            if(move_uploaded_file($_FILES["logo"]["tmp_name"][$f], $path.'applicationName_logo/'.$filename.png))
                $count++; // Number of successfully uploaded file
            $message[] = "$name is uploaded";
            echo "$filename is uploaded";

    }
}
}

1 个答案:

答案 0 :(得分:1)

请尝试以下代码分别保存徽标和图像文件:

HTML:

<form action="yong.php" method="POST" enctype="multipart/form-data">
  <h3>App name</h3>
  <input type="text" id="applicationName" name="applicationName">
  <h3>Background image</h3>
  <input type="file" id="image" name="image[]" multiple="multiple" accept="image/*" />
  <h3>Logo image</h3>
  <input type="file" id="logo" name="logo[]" multiple="multiple" accept="image/*" />
  <br>
  <br>
  <input type="submit">
</form>

PHP

<?php
$valid_formats = array("jpg", "png", "gif", "zip", "bmp");
$max_file_size = 5000*100; //100 kb
$path = "home_dir/"; // Upload directory
$count = 0;

if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
// Loop $_FILES to exeicute all files
foreach ($_FILES['image']['name'] as $f => $name) {
    if ($_FILES['image']['error'][$f] == 4) {
        continue; // Skip file if any error found
        echo "Skip file if any error found";
    }
    if ($_FILES['image']['error'][$f] == 0) {
        if ($_FILES['image']['size'][$f] > $max_file_size) {
            $message[] = "$name is too large!.";
            echo "$name is too large!.";
            continue; // Skip large files
        }
        elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
            $message[] = "$name is not a valid format";
            echo "$name is not a valid format";
            continue; // Skip invalid file formats
        }
        else{ // No error found! Move uploaded files
            if(move_uploaded_file($_FILES["image"]["tmp_name"][$f], $path.'applicationName_bg/'.$name))
                $count++; // Number of successfully uploaded file
            $message[] = "$name is uploaded";
            echo "$name is uploaded";
        }
    }
}

foreach ($_FILES['logo']['name'] as $f => $name) {
    if ($_FILES['logo']['error'][$f] == 4) {
        continue; // Skip file if any error found
        echo "Skip file if any error found";
    }
    if ($_FILES['logo']['error'][$f] == 0) {
        if ($_FILES['logo']['size'][$f] > $max_file_size) {
            $message[] = "$name is too large!.";
            echo "$name is too large!.";
            continue; // Skip large files
        }
        elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
            $message[] = "$name is not a valid format";
            echo "$name is not a valid format";
            continue; // Skip invalid file formats
        }
        else{ // No error found! Move uploaded files
            if(move_uploaded_file($_FILES["logo"]["tmp_name"][$f], $path.'applicationName_logo/'.$name))
                $count++; // Number of successfully uploaded file
            $message[] = "$name is uploaded";
            echo "$name is uploaded";
        }
    }
}
}