function check_uploaded_file($file, $image_restriction = false, &$message = NULL) { if ($file == false) { $message = 'File meta-info is missing. '; return false; } else { if (is_array($file) == false) { $message = 'File meta-info is no array. '; return false; } else { if ($file['error'] > 0) { // php error generated $message = 'Upload Error ' . $file['error'] . ': ' . upload_error_message($file['error']); return false; } else { if (!file_exists($file['tmp_name'])) { // file doesn't exist $message = 'File not present at expected location. '; return false; } else { if ($image_restriction && substr($file['type'], 0, 5) != 'image') { $message = 'File should be an image; MIME-type does not confirm this. '; return false; } } } } } return true; }
$err_level = error_reporting(E_NONE); foreach ($_FILES['add_files']['error'] as $i => $err) { $filename = $_FILES['add_files']['name'][$i]; if ($err == UPLOAD_ERR_OK) { // In case move_uploaded_file fails without a useful error trigger_error('Unknown error', E_USER_WARNING); $filename = get_filename_no_clobber("{$tmp_add_dir}/{$filename}"); $to_add_this = array('type' => 'file', 'display_name' => str_replace("{$tmp_add_dir}/", '', $filename), 'data' => $filename); if (!move_uploaded_file($_FILES['add_files']['tmp_name'][$i], $filename)) { $err = error_get_last(); $to_add_this['error'] = $err['message']; } $to_add[] = $to_add_this; } else { if ($err != UPLOAD_ERR_NO_FILE) { $to_add_this['error'] = upload_error_message($err); $to_add[] = $to_add_this; } } } error_reporting($err_level); print base64_encode(json_encode($to_add)); break; case 'process_url': if (!function_exists('curl_init')) { json_error('The required PHP CURL extension is not present.'); } $c = curl_init($r_data); curl_setopt_array($c, array(CURLOPT_HEADER => true, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_RETURNTRANSFER => true, CURLOPT_FAILONERROR => true)); if ($cookies_file) { curl_setopt($c, CURLOPT_COOKIEFILE, $cookies_file);