奇怪的未定义偏移:0错误

时间:2013-06-06 17:31:20

标签: php

我有以下PHP代码从iOS应用程序接收文件。

收到信息,我的调试工具$file已设置好并且包含所有形式的内容。传递的原始值为btn-7.png$file[0] = btn-7

当我在文件夹中看到它时,处理该函数并将所有图像复制到系统中....因此我不知道为什么会出现此错误。

错误显示在显示$_FILES[$file]

的函数可用的第一行中

有谁知道为什么会这样?

编辑:正如我所说的那样。无需执行var_dump因为我可以回显$ file。另外我从iOS控制台debbugin看不到非JSON结果,我只依靠PHP日志来了解实际的错误信息。

EDIT2:按要求`var_dump(); (我使用的是XCode,iOS开发者控制台,而不是网络浏览器)

ob_start();

            var_dump($file);
            $e = ob_get_contents();
            ob_end_clean();
            error_log($e, 0);

结果

[06-Jun-2013 17:58:26 UTC] string(9) "btn-7.png"`

错误

[06-Jun-2013 17:24:45 UTC] PHP Notice:  Undefined offset: 0 in C:\xampp\htdocs\igym\classes\shareexercise.php on line 146

PHP

private function storeFile( $file )
        {
            $file = explode('.',$file);
            $file = $file[0];
            $msg['asd'] = $file;
            echo json_encode($msg);

            if( $_FILES[$file]["type"] !== "image/png" && $_FILES[$file]["size"] < 2048600 )
            {
                $error['error'] = 'There was a problem uploading your picture';
                echo json_encode($error);
                return 0;
            }

            if( move_uploaded_file( $_FILES[$file]['tmp_name'], IMGUPLOADDIR . '/' . $this->userID . '/' . $_FILES[$file]['name'] ) ) {
                return true;
            } else{
                //$error['error'] = 'There was a problem uploading your picture';
                //echo json_encode($error);
                return false;
            }

        }

1 个答案:

答案 0 :(得分:0)

$_FILES是一个关联数组,而不是数值数组:

来自:php.net

$_FILES
An associative array of items uploaded to the current script via the HTTP POST method.

您应该var_dump($_FILES)并查看结构的外观。 0不存在,因为索引是字段名称或其他字符串。

麻生:A tutorial on $_FILES