Php 关于以单一形式上载多个文件

Php 关于以单一形式上载多个文件,php,file-upload,Php,File Upload,我在我的项目工作,我想上传单一形式的图像,但我有两个输入字段。我希望当我在两个输入字段上选择两个图像时,当我提交它时,我希望我的两个文件都存储在文件夹中,我向您显示我的代码,但使用此代码,我只得到一个图像。我想要上传的两张图片。我的表格是这样的 这是我的代码: 公共功能上传\创意\工作坊\图片($post$文件){ //打印($文件);模具; $allowedExts=数组(“jpeg”、“jpg”、“png”、“gif”); $temp=explode(“.”,$files[“image1”

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

这是我的代码:
公共功能上传\创意\工作坊\图片($post$文件){
//打印($文件);模具;
$allowedExts=数组(“jpeg”、“jpg”、“png”、“gif”);
$temp=explode(“.”,$files[“image1”][“name”]);
$extension=end($temp);
如果(($files[“image1”][“type”]=“image/jpeg”)//检查图像是否为mp3
||($files[“image1”][“type”]=“image/gif”)//检查图像是否为mp4
||($files[“image1”][“type”]=“image/jpg”)//检查图像是否为jpg
||($files[“image1”][“type”]=“image/png”)//检查图像是否为png
&&($files[“image1”][“size”])//检查图像大小是否低于6MB
&&在数组中(trim($extension),$allowedExts))//同时检查扩展
{
如果($files[“image1”][“error”]>0){
echo$files[“image1”][“error”];
}
否则{
$filename=$files[“image1”][“name”];
$upload=移动上传的文件($files[“image1”][“tmp\u name”],$this->img\u path.$filename);
//打印($upload);死亡;
如果($上传){
//$this->store\u image\u indb($filename,$post);
}
}
}否则{
echo“请仅上传图像”;
}
}

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

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

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

您必须运行如下所示的$_文件循环数组,并且必须稍微修改上传功能,如下所示

<?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>";
    }
}
}
?>


我也使用this@kulu你能给我提供JS代码吗?返回validate()时,必须为要上载的每个图像调用函数。在这种情况下,输入字段应具有不同的名称,如
image1
image2
。但我要做的是将输入字段设置为多个,然后使用
$files
数组中的图像调用函数一次。为此,您必须在函数中添加一个循环。是的,我有两个字段的名称不同,如下所示:当您调用
var\u dump($\u文件)时,您看到了什么
?这不是正确的代码,因为此代码m面临许多错误,而您的代码也有许多错误一些变量与循环和函数不匹配这是完美运行的代码我自己尝试过。如果你知道oops,那么你可以毫无错误地运行它。是的,我在这个项目中使用,但是当我使用这个代码时,我遇到了错误。你能告诉我这个php代码应该放在哪里吗?这意味着我说的不是函数,我说的是顶级代码,你告诉我你应该在提交表单时添加$\u FILES循环,在这个循环中只有你应该这样做呼叫功能。你能给我发送你的skype id和链接id吗?我可以与你共享我的文件,并进行适当的讨论,如果你愿意,我也可以。请告诉我
<?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>";
    }
}
}
?>