preview is working
@ -17,14 +17,24 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const debugPanel = document.getElementById('debug-panel');
|
||||||
|
const debugLog = document.getElementById('debug-log');
|
||||||
|
|
||||||
|
function logToDebug(message) {
|
||||||
|
if(debugPanel && debugLog) {
|
||||||
|
debugPanel.style.display = 'block';
|
||||||
|
debugLog.textContent += message + '\n';
|
||||||
|
}
|
||||||
|
console.log(message);
|
||||||
|
}
|
||||||
|
|
||||||
if(fileUploadInput) {
|
if(fileUploadInput) {
|
||||||
fileUploadInput.addEventListener('change', () => {
|
fileUploadInput.addEventListener('change', () => {
|
||||||
if (fileUploadInput.files.length > 0) {
|
if (fileUploadInput.files.length > 0) {
|
||||||
const file = fileUploadInput.files[0];
|
const file = fileUploadInput.files[0];
|
||||||
const fileName = file.name;
|
logToDebug('File selected: ' + file.name);
|
||||||
if(fileNameDisplay) {
|
|
||||||
fileNameDisplay.textContent = `Selected file: ${fileName}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
formData.append('document', file);
|
formData.append('document', file);
|
||||||
@ -36,47 +46,56 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: formData
|
body: formData
|
||||||
})
|
})
|
||||||
.then(response => response.json())
|
.then(response => {
|
||||||
|
logToDebug('Received response from server. Status: ' + response.status);
|
||||||
|
return response.json();
|
||||||
|
})
|
||||||
.then(data => {
|
.then(data => {
|
||||||
processingMessage.style.display = 'none';
|
processingMessage.style.display = 'none';
|
||||||
if (data.success && data.filePath) {
|
|
||||||
uploadedFilePath = data.filePath;
|
if (data.success && data.path) {
|
||||||
|
uploadedFilePath = data.path;
|
||||||
|
const file = fileUploadInput.files[0];
|
||||||
|
|
||||||
const fileExtension = uploadedFilePath.split('.').pop().toLowerCase();
|
const fileExtension = uploadedFilePath.split('.').pop().toLowerCase();
|
||||||
|
|
||||||
const imageExtensions = ['jpg', 'jpeg', 'png', 'gif', 'tiff', 'bmp', 'webp'];
|
const imageExtensions = ['jpg', 'jpeg', 'png', 'gif', 'tiff', 'bmp', 'webp'];
|
||||||
|
|
||||||
const imagePreview = document.getElementById('image-preview');
|
fileUploadLabel.style.display = 'none';
|
||||||
const pdfPreview = document.getElementById('pdf-preview');
|
fileNameDisplay.textContent = file.name;
|
||||||
const pdfFilename = document.getElementById('pdf-filename');
|
|
||||||
|
|
||||||
imagePreview.style.display = 'none';
|
|
||||||
pdfPreview.style.display = 'none';
|
|
||||||
|
|
||||||
if (imageExtensions.includes(fileExtension)) {
|
if (imageExtensions.includes(fileExtension)) {
|
||||||
|
imagePreview.onload = function() {
|
||||||
|
previewContainer.style.display = 'block';
|
||||||
|
imagePreview.style.display = 'block';
|
||||||
|
startTranslationBtn.style.display = 'block';
|
||||||
|
};
|
||||||
|
imagePreview.onerror = function() {
|
||||||
|
alert('Error loading image preview.');
|
||||||
|
fileUploadLabel.style.display = 'block';
|
||||||
|
};
|
||||||
imagePreview.src = uploadedFilePath + '?t=' + new Date().getTime();
|
imagePreview.src = uploadedFilePath + '?t=' + new Date().getTime();
|
||||||
imagePreview.style.display = 'block';
|
|
||||||
} else if (fileExtension === 'pdf') {
|
} else if (fileExtension === 'pdf') {
|
||||||
pdfFilename.textContent = uploadedFilePath.split('/').pop();
|
const pdfFilename = document.getElementById('pdf-filename');
|
||||||
pdfPreview.style.display = 'block';
|
pdfFilename.textContent = file.name;
|
||||||
|
previewContainer.style.display = 'block';
|
||||||
|
document.getElementById('pdf-preview').style.display = 'block';
|
||||||
|
startTranslationBtn.style.display = 'block';
|
||||||
} else {
|
} else {
|
||||||
pdfFilename.textContent = "Unsupported file type for preview: " + uploadedFilePath.split('/').pop();
|
alert("Unsupported file type for preview.");
|
||||||
pdfPreview.style.display = 'block';
|
fileUploadLabel.style.display = 'block';
|
||||||
}
|
}
|
||||||
|
|
||||||
previewContainer.style.display = 'block';
|
|
||||||
document.getElementById('translation-form').style.display = 'none';
|
|
||||||
startTranslationBtn.style.display = 'block';
|
|
||||||
} else {
|
} else {
|
||||||
throw new Error(data.message || 'File upload failed.');
|
throw new Error(data.message || 'File upload failed.');
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
|
logToDebug('An error occurred in the upload process: ' + error.message);
|
||||||
processingMessage.style.display = 'none';
|
processingMessage.style.display = 'none';
|
||||||
const responseMessageDiv = document.getElementById('response-message');
|
const responseMessageDiv = document.getElementById('response-message');
|
||||||
responseMessageDiv.innerHTML = `<div class="alert alert-danger" role="alert">An unexpected error occurred: ${error.message}</div>`;
|
responseMessageDiv.innerHTML = `<div class="alert alert-danger" role="alert">An unexpected error occurred: ${error.message}</div>`;
|
||||||
responseMessageDiv.style.display = 'block';
|
responseMessageDiv.style.display = 'block';
|
||||||
console.error('Upload Error:', error);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
assets/pasted-20251120-124515-9e03bb1c.png
Normal file
|
After Width: | Height: | Size: 357 KiB |
@ -39,6 +39,7 @@
|
|||||||
|
|
||||||
<main class="container my-5">
|
<main class="container my-5">
|
||||||
|
|
||||||
|
|
||||||
<div class="row justify-content-center">
|
<div class="row justify-content-center">
|
||||||
<div class="col-lg-8">
|
<div class="col-lg-8">
|
||||||
<div class="translation-box">
|
<div class="translation-box">
|
||||||
|
|||||||
16
upload.php
@ -5,10 +5,12 @@ ini_set('error_log', __DIR__ . '/error_log.txt');
|
|||||||
|
|
||||||
header('Content-Type: application/json');
|
header('Content-Type: application/json');
|
||||||
|
|
||||||
function json_response($success, $message, $filePath = null) {
|
function json_response($success, $data) {
|
||||||
$response = ['success' => $success, 'message' => $message];
|
$response = ['success' => $success];
|
||||||
if ($filePath) {
|
if (is_string($data)) {
|
||||||
$response['filePath'] = $filePath;
|
$response['message'] = $data;
|
||||||
|
} elseif (is_array($data)) {
|
||||||
|
$response = array_merge($response, $data);
|
||||||
}
|
}
|
||||||
echo json_encode($response);
|
echo json_encode($response);
|
||||||
exit;
|
exit;
|
||||||
@ -51,8 +53,10 @@ $target_path = $upload_dir . $file_name;
|
|||||||
|
|
||||||
if (move_uploaded_file($file['tmp_name'], $target_path)) {
|
if (move_uploaded_file($file['tmp_name'], $target_path)) {
|
||||||
|
|
||||||
$web_path = '/uploads/' . $file_name;
|
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || $_SERVER['SERVER_PORT'] == 443 ? "https://" : "http://";
|
||||||
json_response(true, 'File uploaded successfully.', $web_path);
|
$domain_name = $_SERVER['HTTP_HOST'];
|
||||||
|
$web_path = $protocol . $domain_name . '/uploads/' . $file_name;
|
||||||
|
json_response(true, ['path' => $web_path, 'message' => 'File uploaded successfully.']);
|
||||||
} else {
|
} else {
|
||||||
json_response(false, 'Failed to move uploaded file.');
|
json_response(false, 'Failed to move uploaded file.');
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
uploads/doc_691f0bf340417.jpg
Normal file
|
After Width: | Height: | Size: 355 KiB |
BIN
uploads/doc_691f0c555fd8e.jpg
Normal file
|
After Width: | Height: | Size: 355 KiB |
BIN
uploads/doc_691f0c613af9f.jpg
Normal file
|
After Width: | Height: | Size: 355 KiB |
BIN
uploads/doc_691f0d239eafe.jpg
Normal file
|
After Width: | Height: | Size: 355 KiB |
BIN
uploads/doc_691f0dca02956.jpg
Normal file
|
After Width: | Height: | Size: 355 KiB |
BIN
uploads/doc_691f0e3c6c9b2.jpg
Normal file
|
After Width: | Height: | Size: 355 KiB |
BIN
uploads/doc_691f0f0a63bfe.jpg
Normal file
|
After Width: | Height: | Size: 355 KiB |