2013-06-06 3 views
1

У меня есть следующий PHP-код, который получает файл из приложения iOS.Weird Неопределенное смещение: 0 error

Информация получена и для моего отладки $file настроен и имеет контент во всех его формах. Исходное значение прошло btn-7.png и $file[0] = btn-7.

Функция обрабатывается, и все изображения копируются в систему, так как я вижу их в папке .... таким образом, я не знаю, почему я получаю эту ошибку.

Ошибка появляется в первой строке доступны функции, которая показывает $_FILES[$file]

Кто-нибудь есть идея, почему это происходит?

EDIT: Как я уже говорил. Нет необходимости делать var_dump, потому что я могу выполнить echo $ file. Кроме того, я debbugin с консоли iOS не вижу результатов, отличных от 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; 
      } 

     } 
+3

Я бы попытаться 'var_dump' $ файла перед строкой 146. –

+1

, что странно, даже если вы взрываются («», пустой), вы получите массив с 0 элемента. – Orangepill

+0

@SSHThis Как упоминалось, в файле $ есть все, что я могу повторить. –

ответ

0

$_FILES является a ассоциативный массив, а не числовой массив:

От: 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

+0

Я думаю, что массив, в котором он говорит, фактически является' $ file' not '$ _FILES'. Хотя, я тебя не голосовал. –

+1

Вы уверены? 'Ошибка появляется в первой строке, доступной функции, которая показывает $ _FILES [$ file]' – phatskat

+0

$ _FILES [$ file] == $ _FILES ['btn-7'] –

Смежные вопросы