【问题标题】:regarding multiple files upload in single form关于以单一形式上传多个文件
【发布时间】:2017-07-26 11:40:24
【问题描述】:

我正在处理我的项目,我想上传带有单一表单的图像,但我有两个输入字段。我希望在提交时在两个输入字段上选择两个图像我希望我的两个文件都存储在我向您展示我的代码的文件夹中,但是使用此代码,我只得到一个图像。我想要我上传的两张图片。我的表格是这样的

Here is my code:

public function upload_creative_workshop_image($post, $files){
    //print_r($files); die;
    $allowedExts= array("jpeg", "jpg", "png", "gif");
    $temp = explode(".", $files["image1"]["name"]);
    $extension = end($temp);

    if ((($files["image1"]["type"] == "image/jpeg") //check image is mp3
    || ($files["image1"]["type"] == "image/gif") //check image is mp4
    || ($files["image1"]["type"] == "image/jpg")  //check image is jpg
    || ($files["image1"]["type"] == "image/png")) //check image is png
    && ($files["image1"]["size"]) //check if image size is below 6MB
    && in_array(trim($extension), $allowedExts)) //check the extensions also
        {
            if($files["image1"]["error"] > 0){
                echo $files["image1"]["error"];
            }
            else{
        $filename = $files["image1"]["name"];
        $upload= move_uploaded_file($files["image1"]["tmp_name"], $this->img_path.$filename);
        //print_r($upload); die;
        if($upload){
            //$this->store_image_indb($filename, $post);
                }
            }
        }else{

            echo "<h1>please upload image only</h1>";
        }
}

【问题讨论】:

  • 您必须为要上传的每张图片调用您的函数。在这种情况下,您的输入字段应该具有不同的名称,例如 image1image2但是 我要做的是让您的输入字段变为多个,然后使用 $files 数组中的图像调用您的函数一次。为此,您必须在函数中添加一个循环。
  • 是的,我有两个字段的名称不同,如下所示:
  • 当你打电话给var_dump($_FILES)时你看到了什么?

标签: php file-upload


【解决方案1】:

如果您有两个不同的名称,例如“image1”和“image2”,请查看以下解决方案:

您必须像下面那样运行 $_FILES 数组的循环,并且必须像下面这样稍微修改您的上传功能。

<?php

if (isset($_FILES)) {
    if (COUNT($_FILES) >= 1) {
    foreach ($_FILES as $i_key => $image_file) {
        $testObject = new test();
        $testObject->upload_creative_workshop_image($image_file);
}
}
}

class test {
 function upload_creative_workshop_image($image){
    //print_r($files); die;
    $allowedExts= array("jpeg", "jpg", "png", "gif");
    $temp = explode(".", $image["name"]);
    $extension = end($temp);

    if ((($image["type"] == "image/jpeg") //check image is mp3
    || ($image["type"] == "image/gif") //check image is mp4
    || ($image["type"] == "image/jpg")  //check image is jpg
    || ($image["type"] == "image/png")) //check image is png
    && ($image["size"]) //check if image size is below 6MB
    && in_array(trim($extension), $allowedExts)) //check the extensions also
    {
        if($image["error"] > 0){
            echo $image["error"];
        }
        else{
    $filename = $image["name"];
    $upload= move_uploaded_file($image["tmp_name"], 'uploads/'.$filename);
    //print_r($upload); die;
    if($upload){
        //$this->store_image_indb($filename, $post);
            }
        }
    }else{

        echo "<h1>please upload image only</h1>";
    }
}
}
?>

【讨论】:

  • 这不是正确的代码,此代码 m 面临很多错误,您的代码有很多错误,一些变量与循环和函数不匹配
  • 这是我自己尝试过的完美运行代码。如果你知道 oops 那么你可以运行它而不会出错。
  • 是的,我在这个项目中使用,但是当我使用这个代码时,我遇到了错误,你能告诉我这个 php 代码我应该放在哪里吗?它意味着哪个文件 m 不是在谈论函数 m 在谈论顶级代码你告诉我的
  • 你应该在提交表单时添加 $_FILES 循环,并且只有在这个循环中你应该调用函数。
  • 你能把你的 Skype id 发给我吗?我可以和你分享我的文件并进行适当的讨论,我也是女孩,如果你愿意,请告诉我
【解决方案2】:

您可以使用多类型表单数据,例如

<form method=post action='' enctype='multipart/form-data'>
<input type=file name='images[]'>

【讨论】:

  • 我也用这个
  • @kulu 你能提供我的 JS 代码方面吗?返回时验证()
猜你喜欢
  • 2013-12-11
  • 2019-06-27
  • 1970-01-01
  • 2014-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-06
  • 1970-01-01
相关资源
最近更新 更多