imgupload-postcc.html
--
PostImage Upload - Auto-Key
cors.php
--
'Invalid URL'];
}
// Prepare HTTP context options
$options = [
'http' => [
'method' => $method,
'ignore_errors' => true,
'header' => ''
]
];
// Add custom headers
if (!empty($headers)) {
foreach ($headers as $key => $value) {
$options['http']['header'] .= "$key: $value\r\n";
}
}
// Add body for POST/PUT requests
if ($body !== null && in_array($method, ['POST', 'PUT', 'PATCH'])) {
$options['http']['content'] = $body;
if (!isset($headers['Content-Length'])) {
$options['http']['header'] .= "Content-Length: " . strlen($body) . "\r\n";
}
}
$context = stream_context_create($options);
$response = @file_get_contents($url, false, $context);
if ($response === false) {
return ['error' => 'Unable to fetch data from URL'];
}
return ['data' => $response, 'headers' => $http_response_header];
}
// Handle OPTIONS preflight
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
exit(0);
}
// Handle POST requests (MUST COME FIRST!)
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$input = file_get_contents('php://input');
if (!empty($input)) {
$postData = json_decode($input, true);
if (isset($postData['query'])) {
$url = htmlspecialchars($postData['query']);
$method = isset($postData['method']) ? $postData['method'] : 'GET';
$headers = isset($postData['headers']) ? $postData['headers'] : [];
$body = isset($postData['body']) ? $postData['body'] : null;
$result = fetchDataFromUrl($url, $method, $headers, $body);
if (isset($result['error'])) {
header('Content-Type: application/json');
echo json_encode($result);
exit;
}
$contentType = 'text/plain';
foreach ($result['headers'] as $header) {
if (stripos($header, 'Content-Type:') === 0) {
$contentType = substr($header, strlen('Content-Type: '));
break;
}
}
header('Content-Type: ' . $contentType);
echo $result['data'];
exit;
}
header('Content-Type: application/json');
echo json_encode(['error' => 'No query parameter provided in POST data']);
exit;
}
header('Content-Type: application/json');
echo json_encode(['error' => 'No POST data received']);
exit;
}
// Handle GET requests
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
if (isset($_GET['query'])) {
$url = htmlspecialchars($_GET['query']);
$result = fetchDataFromUrl($url);
if (isset($result['error'])) {
header('Content-Type: application/json');
echo json_encode($result);
exit;
}
$contentType = 'text/plain';
foreach ($result['headers'] as $header) {
if (stripos($header, 'Content-Type:') === 0) {
$contentType = substr($header, strlen('Content-Type: '));
break;
}
}
header('Content-Type: ' . $contentType);
echo $result['data'];
exit;
}
header('Content-Type: application/json');
echo json_encode(['error' => 'No query parameter provided']);
exit;
}
// Invalid method
header('Content-Type: application/json');
echo json_encode(['error' => 'Invalid request method']);
exit;
OldVer:
PCEtLS1odHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83OTY5MjI4OC9ob3ctdG8tdXBsb2FkLWltYWdlcy12aWEtYXBpLW9uLXBvc3RpbWFnZXMtb3JnLS0tLT4KPGJyPiBGb3IgRGlyZWN0TGluayBjaGFuZ2UgdG8gY29uc3QgZGlyZWN0TWF0Y2ggPSByZXNwb25zZVRleHQubWF0Y2goLzxob3RsaW5rPihodHRwczpcL1wvaVwucG9zdGltZ1wuY2NcL1thLXpBLVowLTldK1wvW2EtekEtWjAtOS5fLV0rKTxcL2hvdGxpbms+Lyk7PGJyPjxocj4KPCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDx0aXRsZT5Qb3N0SW1hZ2UgVXBsb2FkIC0gQXV0by1LZXk8L3RpdGxlPgogICAgPHN0eWxlPgogICAgICAgIGJvZHkgeyBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgcGFkZGluZzogMjBweDsgbGluZS1oZWlnaHQ6IDEuNTsgYmFja2dyb3VuZDogI2Y0ZjdmNjsgfQogICAgICAgIC5jb250YWluZXIgeyBtYXgtd2lkdGg6IDU1MHB4OyBtYXJnaW46IGF1dG87IGJvcmRlcjogMXB4IHNvbGlkICNjY2M7IHBhZGRpbmc6IDI1cHg7IGJvcmRlci1yYWRpdXM6IDEycHg7IGJhY2tncm91bmQ6IHdoaXRlOyBib3gtc2hhZG93OiAwIDRweCAxMHB4IHJnYmEoMCwwLDAsMC4xKTsgfQogICAgICAgIGxhYmVsIHsgZm9udC13ZWlnaHQ6IGJvbGQ7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6ICM1NTU7IH0KICAgICAgICBpbnB1dCB7IHdpZHRoOiAxMDAlOyBtYXJnaW4tYm90dG9tOiAxNXB4OyBwYWRkaW5nOiAxMHB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94OyBib3JkZXI6IDFweCBzb2xpZCAjZGRkOyBib3JkZXItcmFkaXVzOiA2cHg7IH0KICAgICAgICBidXR0b24geyB3aWR0aDogMTAwJTsgcGFkZGluZzogMTJweDsgYmFja2dyb3VuZDogIzAwN2JmZjsgY29sb3I6IHdoaXRlOyBib3JkZXI6IG5vbmU7IGJvcmRlci1yYWRpdXM6IDZweDsgY3Vyc29yOiBwb2ludGVyOyBmb250LXdlaWdodDogYm9sZDsgfQogICAgICAgIGJ1dHRvbjpob3ZlciB7IGJhY2tncm91bmQ6ICMwMDU2YjM7IH0KICAgICAgICAjcmVzdWx0IHsgbWFyZ2luLXRvcDogMjBweDsgfQogICAgICAgIC51cmwtYm94IHsgYmFja2dyb3VuZDogI2Y5ZjlmOTsgcGFkZGluZzogMTBweDsgYm9yZGVyOiAxcHggc29saWQgI2VlZTsgbWFyZ2luLXRvcDogMTBweDsgYm9yZGVyLXJhZGl1czogNXB4OyB3b3JkLWJyZWFrOiBicmVhay1hbGw7IH0KICAgICAgICAjZGVidWctbG9nIHsgYmFja2dyb3VuZDogIzIyMjsgY29sb3I6ICMwZjA7IHBhZGRpbmc6IDEwcHg7IGZvbnQtc2l6ZTogMTFweDsgd2hpdGUtc3BhY2U6IHByZS13cmFwOyBtYXJnaW4tdG9wOiAyMHB4OyBib3JkZXItcmFkaXVzOiA1cHg7IG1heC1oZWlnaHQ6IDIwMHB4OyBvdmVyZmxvdy15OiBhdXRvOyBkaXNwbGF5OiBub25lOyB9CiAgICAgICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlOyBtYXJnaW4tdG9wOiAxNXB4OyBib3JkZXI6IDFweCBzb2xpZCAjY2NjOyBib3JkZXItcmFkaXVzOiA1cHg7IH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+Cgo8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgPGgzPlBvc3RJbWFnZSBVcGxvYWQ8L2gzPgogICAgCiAgICA8bGFiZWw+QVBJIEtleTo8L2xhYmVsPgogICAgPGlucHV0IGlkPSJhcGlLZXkiIHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJFbnRlciBBUEkgS2V5IG9yIHVzZSA/YXBpa2V5PSBpbiBVUkwiPgogICAgCiAgICA8bGFiZWw+U2VsZWN0IEltYWdlOjwvbGFiZWw+CiAgICA8aW5wdXQgdHlwZT0iZmlsZSIgaWQ9ImZpbGVJbnB1dCIgYWNjZXB0PSJpbWFnZS8qIj4KICAgIAogICAgPGJ1dHRvbiBvbmNsaWNrPSJ1cGxvYWQoKSI+VXBsb2FkICYgUGFyc2U8L2J1dHRvbj4KCiAgICA8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgogICAgPGRpdiBpZD0iZGVidWctbG9nIj48L2Rpdj4KPC9kaXY+Cgo8c2NyaXB0PgovLyAtLS0gTkVXOiBSZWFkIFF1ZXJ5U3RyaW5nIG9uIFBhZ2UgTG9hZCAtLS0Kd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogICAgY29uc3QgdXJsUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTsKICAgIGNvbnN0IGtleUZyb21VcmwgPSB1cmxQYXJhbXMuZ2V0KCdhcGlrZXknKTsKICAgIGlmIChrZXlGcm9tVXJsKSB7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FwaUtleScpLnZhbHVlID0ga2V5RnJvbVVybDsKICAgICAgICBjb25zb2xlLmxvZygiQVBJIEtleSBsb2FkZWQgZnJvbSBVUkwgcGFyYW1ldGVycy4iKTsKICAgIH0KfTsKCmFzeW5jIGZ1bmN0aW9uIHVwbG9hZCgpIHsKICAgIGNvbnN0IGtleSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhcGlLZXknKS52YWx1ZTsKICAgIGNvbnN0IGZpbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmlsZUlucHV0JykuZmlsZXNbMF07CiAgICBjb25zdCByZXN1bHRBcmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpOwogICAgY29uc3QgZGVidWdMb2cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVidWctbG9nJyk7CiAgICAKICAgIGlmICgha2V5IHx8ICFmaWxlKSB7IGFsZXJ0KCdQbGVhc2UgcHJvdmlkZSBib3RoIEtleSBhbmQgRmlsZScpOyByZXR1cm47IH0KICAgIAogICAgcmVzdWx0QXJlYS5pbm5lckhUTUwgPSAiPGI+VXBsb2FkaW5nLi4uPC9iPiI7CiAgICBkZWJ1Z0xvZy5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwoKICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CiAgICByZWFkZXIub25sb2FkID0gYXN5bmMgZnVuY3Rpb24oZSkgewogICAgICAgIGNvbnN0IGJhc2U2NCA9IGUudGFyZ2V0LnJlc3VsdC5zcGxpdCgnLCcpWzFdOwogICAgICAgIAogICAgICAgIGNvbnN0IGRhdGEgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7CiAgICAgICAgZGF0YS5hcHBlbmQoJ2tleScsIGtleSk7CiAgICAgICAgZGF0YS5hcHBlbmQoJ2ltYWdlJywgYmFzZTY0KTsKICAgICAgICBkYXRhLmFwcGVuZCgnbycsICcyYjgxOTU4NDI4NWMxMDIzMTg1NjgyMzhjN2Q0YTRjNycpOwogICAgICAgIGRhdGEuYXBwZW5kKCdtJywgJzU5YzJhZDRiNDZiMGMxZTEyZDU3MDMzMDJiZmYwMTIwJyk7CiAgICAgICAgZGF0YS5hcHBlbmQoJ3ZlcnNpb24nLCAnMS4wLjEnKTsKICAgICAgICBkYXRhLmFwcGVuZCgnbmFtZScsIGZpbGUubmFtZS5zcGxpdCgnLicpWzBdKTsKICAgICAgICBkYXRhLmFwcGVuZCgndHlwZScsIGZpbGUubmFtZS5zcGxpdCgnLicpLnBvcCgpKTsKCiAgICAgICAgY29uc3QgcHJveHkgPSAnaHR0cHM6Ly9jb3JzcHJveHkuaW8vPyc7CiAgICAgICAgY29uc3QgdGFyZ2V0ID0gJ2h0dHBzOi8vYXBpLnBvc3RpbWFnZS5vcmcvMS91cGxvYWQnOwoKICAgICAgICB0cnkgewogICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChwcm94eSArIGVuY29kZVVSSUNvbXBvbmVudCh0YXJnZXQpLCB7CiAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJywKICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCd9LAogICAgICAgICAgICAgICAgYm9keTogZGF0YQogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlVGV4dCA9IGF3YWl0IHJlcy50ZXh0KCk7CiAgICAgICAgICAgIAogICAgICAgICAgICBkZWJ1Z0xvZy5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKICAgICAgICAgICAgZGVidWdMb2cudGV4dENvbnRlbnQgPSAiUkFXIFJFU1BPTlNFOlxuIiArIHJlc3BvbnNlVGV4dDsKCiAgICAgICAgICAgIC8vIFJlZ2V4IHRvIGdyYWIgdGhlIFVSTHMgZnJvbSB0aGUgWE1ML1RleHQgcmVzcG9uc2UKICAgICAgICAgICAgY29uc3QgZ2FsbGVyeU1hdGNoID0gcmVzcG9uc2VUZXh0Lm1hdGNoKC9odHRwczpcL1wvcG9zdGltZ1wuY2NcL1thLXpBLVowLTldKy8pOwogICAgICAgICAgICBjb25zdCBkaXJlY3RNYXRjaCA9IHJlc3BvbnNlVGV4dC5tYXRjaCgvaHR0cHM6XC9cL2lcLnBvc3RpbWdcLmNjXC9bYS16QS1aMC05XStcL1thLXpBLVowLTkuXy1dKy8pOwoKICAgICAgICAgICAgY29uc3QgZ2FsbGVyeVVybCA9IGdhbGxlcnlNYXRjaCA/IGdhbGxlcnlNYXRjaFswXSA6IG51bGw7CiAgICAgICAgICAgIGNvbnN0IGRpcmVjdFVybCA9IGRpcmVjdE1hdGNoID8gZGlyZWN0TWF0Y2hbMF0gOiBudWxsOwoKICAgICAgICAgICAgaWYgKGdhbGxlcnlVcmwgfHwgZGlyZWN0VXJsKSB7CiAgICAgICAgICAgICAgICBsZXQgaHRtbCA9IGA8cCBzdHlsZT0iY29sb3I6Z3JlZW47Ij48Yj5VcGxvYWQgU3VjY2Vzc2Z1bCE8L2I+PC9wPmA7CiAgICAgICAgICAgICAgICBpZiAoZ2FsbGVyeVVybCkgewogICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gYDxkaXYgY2xhc3M9InVybC1ib3giPjxzdHJvbmc+R2FsbGVyeTo8L3N0cm9uZz48YnI+JHtnYWxsZXJ5VXJsfTwvZGl2PmA7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoZGlyZWN0VXJsKSB7CiAgICAgICAgICAgICAgICAgICAgaHRtbCArPSBgPGRpdiBjbGFzcz0idXJsLWJveCI+PHN0cm9uZz5EaXJlY3QgTGluazo8L3N0cm9uZz48YnI+JHtkaXJlY3RVcmx9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9IiR7ZGlyZWN0VXJsfSI+YDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJlc3VsdEFyZWEuaW5uZXJIVE1MID0gaHRtbDsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJlc3VsdEFyZWEuaW5uZXJIVE1MID0gYDxwIHN0eWxlPSJjb2xvcjpvcmFuZ2U7Ij5VcGxvYWRlZCwgYnV0IGNvdWxkbid0IGZpbmQgbGlua3MuIENoZWNrIGRlYnVnIGJveC48L3A+YDsKICAgICAgICAgICAgfQoKICAgICAgICB9IGNhdGNoKGVycikgewogICAgICAgICAgICByZXN1bHRBcmVhLmlubmVySFRNTCA9IGA8cCBzdHlsZT0iY29sb3I6cmVkOyI+RXJyb3I6ICR7ZXJyLm1lc3NhZ2V9PC9wPmA7CiAgICAgICAgfQogICAgfTsKICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOwp9Cjwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K