首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在foreach循环中使用数组的问题

在foreach循环中使用数组的问题
EN

Stack Overflow用户
提问于 2012-07-12 12:28:22
回答 4查看 210关注 0票数 0

我正在构建一个函数,它可以上传单个图像或多个图像,这取决于它是否来自一个字段数组。

下面是函数和调用者:

代码语言:javascript
复制
private function imageUpload($image, $altText, $uploadDir)
{

    $uploadDir = (!substr($uploadDir, "/")) ? $uploadDir."/" : $uploadDir;
    print_r($_POST[$image]);
    if(is_array($_POST[$image]))
    {

        foreach($_FILES[$image] as $image)  //Line 316
        {

            //$targetPath = $uploadDir.basename($image['name']);
            //echo $targetPath;
            echo "array";

        }

    }
    else
    {

        $targetPath = $uploadDir.basename($image['name']);
        //echo $targetPath;
        echo "not array";

    }

}

$this->imageUpload('pei_image', 'pei_alt', '/images/upload/products/');

我尝试在pei_image[]字段中使用1/2图像字段,但我得到了以下错误:

遇到PHP错误 严重性:注意消息:未定义索引: pei_image 文件名: models/products_model.php 线路号码: 316 遇到PHP错误 严重程度:警告 消息:为foreach()提供的无效参数 文件名: models/products_model.php 线路号码: 316

但是,当我打印$_POST$image时,我得到了一个数组,它的值数量是正确的。结果如下:

数组( => 06 Lect03 WD概念- mod SP.png 1 => brtemplate.jpg )

怎么啦?

编辑

$_FILES数组是空的,为什么会这样?以下是表单中的两个图像上传字段:

代码语言:javascript
复制
<input type="file" name="pei_image[]" value="Showing-the-Heavy-horse.jpg" class="imageUpload" onchange="removePreviewButton(this, 2);">
<input type="file" name="pei_image[]" value="Showing-the-Heavy-horse.jpg" class="imageUpload" onchange="removePreviewButton(this, 3);">
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-07-12 16:07:16

这个问题是我的附件类型中的一个错误,因此它默认为“application/x form-urlencoded”,这样它就不会上传到$_FILES数组。

票数 0
EN

Stack Overflow用户

发布于 2012-07-12 12:35:23

替换

代码语言:javascript
复制
foreach($_FILES[$image] as $image)

通过

代码语言:javascript
复制
foreach($_FILES as $image)
票数 0
EN

Stack Overflow用户

发布于 2012-07-12 12:42:13

试试这个..。

代码语言:javascript
复制
private function imageUpload($image, $altText, $uploadDir)
{

    $uploadDir = (!substr($uploadDir, "/")) ? $uploadDir."/" : $uploadDir;

    if(is_array($image)
    {

        foreach($image as $img)  //Line 316
        {

            //$targetPath = $uploadDir.basename($image['name']);
            //echo $targetPath;
            echo "array";

        }

    }
    else
    {

        $targetPath = $uploadDir.basename($image['name']);
        //echo $targetPath;
        echo "not array";

    }

}

$this->imageUpload('pei_image', 'pei_alt', '/images/upload/products/');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11451862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档