1

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

接收到信息并为我的调试$file器设置并具有所有形式的内容。传递的原始值为btn-7.pngand $file[0] = btn-7

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

错误出现在显示的函数可用的第一行中$_FILES[$file]

有谁知道为什么会这样?

编辑:正如我所说。不需要做 var_dump 因为我可以回显 $file。另外我是从 iOS 控制台调试的,看不到非 JSON 结果,我只依靠 PHP 日志来了解实际的错误消息。

EDIT2:根据要求 `var_dump(); (我正在使用 XCode、iOS 开发控制台,而不是 Web 浏览器)

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

        }
4

1 回答 1

0

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

来自:php.net

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

你应该var_dump($_FILES)看看结构是什么样的。0 不存在,因为索引是字段名称或其他字符串。

Aso:关于 $_FILES 的教程

于 2013-06-06T17:51:06.633 回答