我有以下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;
}
}
答案 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不存在,因为索引是字段名称或其他字符串。