dfg_3dviewer_js_library/viewer/php/thumbnail_upload.php
2026-06-25 09:11:23 +02:00

81 lines
No EOL
1.9 KiB
PHP

<?php
try {
header('Content-type: application/json');
//get file name
$filename = $_POST['filename'];
$path = $_POST['path'];
$wisski_individual = $_POST['wisski_individual'];
if (!$filename) {
die(json_encode([
'error' => "Could not read filename from request"
]));
}
//get image data
$img = $_FILES['data'];
if (!$filename || !$path) {
die(json_encode([
'error' => "No image data in request"
]));
}
if (!isset($_FILES['data']) || $_FILES['data']['error'] !== UPLOAD_ERR_OK) {
die(json_encode([
'error' => "Image upload failed: " . ($_FILES['data']['error'] ?? 'No file')
]));
}
//Create save dir
$savePath = $path . "views/";
if (!file_exists($savePath)) {
if (!mkdir($savePath, 0777, true)) {
die(json_encode([
'error' => "Could not create dir $savePath"
]));
}
}
//Save file
$savePath .= $filename . '_side45.png';
if (!move_uploaded_file($img['tmp_name'], $savePath)) {
echo json_encode([
'error' => "Could not write to $savePath"
]);
}
else {
$bytes = filesize($savePath);
$params = array(
'path' => $savePath
);
$fields_string = '';
foreach($params as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $_POST['domain'] . '/' . $wisski_individual . '/savePreview');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_COOKIE, true);
curl_setopt($ch, CURLOPT_POST, count($params));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
$response = curl_exec($ch);
curl_close($ch);
if($response !== false) {
echo json_encode([
'message' => "Image uploaded and saved to $savePath ($bytes bytes) $response"
]);
}
else {
echo json_encode([
'error' => "Curl failed: " . curl_error($ch)
]);
}
}
} catch (Exception $err) {
echo json_encode([
'error' => $err->getMessage()
]);
}
?>