iOS アプリからファイルを受け取る次の PHP コードがあります。
情報が受信され、デバッグ用に$file
設定され、すべての形式のコンテンツが含まれています。渡される元の値はbtn-7.png
and$file[0] = btn-7
です。
関数が処理され、フォルダーにあるすべての画像がシステムにコピーされます....したがって、このエラーが発生する理由がわかりません。
エラーは、関数で使用可能な最初の行に表示されます。$_FILES[$file]
なぜこれが起こっているのか誰にも分かりますか?
編集:私が言ったように。$file をエコーできるので、var_dump を実行する必要はありません。また、iOS コンソールから debbugin を実行しても、JSON 以外の結果は表示されません。実際のエラー メッセージを知るには、PHP ログのみに依存しています。
EDIT2: 要求どおり `var_dump(); (私は Web ブラウザーではなく、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;
}
}