Ich erstelle eine Webseite über Azures Web App in WordPress. Ich möchte, dass eine meiner Seiten dem Benutzer ermöglicht, eine Datei hochzuladen. Diese Datei geht zu einem Python -Skript, das auf dieser Datei zurück zu WordPress zurückgegeben wird, damit der Benutzer angezeigt wird. Ich bin sehr neu in Azure und Webentwicklung, da meine Hauptdomäne Datenwissenschaft ist. Seien Sie also geduldig.
Run WebJob
document.getElementById('webjob-form').addEventListener('submit', async (e) => {
e.preventDefault();
const formData = new FormData();
formData.append('file', document.getElementById('file').files[0]);
const response = await fetch('', {
method: 'POST',
body: formData
});
const result = await response.json();
if (result.success) {
// Display output or stitched image
const imageUrl = result.data.match(/https:\/\/[^\s]+/)[0]; // Extract URL from
response
document.getElementById('stitched-image').src = imageUrl;
document.getElementById('stitched-image').style.display = 'block';
} else {
document.getElementById('output').innerHTML = `
Failed: ${result.data}`;
}
});
< /code>
Die in My Functions.php -Datei in Theme Editor habe ich -< /p>
function trigger_webjob_with_file() {
if (isset($_FILES['file'])) {
$file = $_FILES['file'];
$upload_dir = wp_upload_dir()['path'];
if (!file_exists($upload_dir)) {
mkdir($upload_dir, 0755, true);
}
$file_path = $upload_dir . '/' . basename($file['name']);
if (move_uploaded_file($file['tmp_name'], $file_path)) {
$url =
'https://omitted.scm.azurewebsites.net/a ... Images/run';
$username = 'omitted';
$password = 'omitted';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERPWD, "$username:$password");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, array(
'file' => curl_file_create($file_path)
));
$response = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
if ($error) {
wp_send_json_error("Error triggering WebJob: $error");
} else {
wp_send_json_success($response); // Return WebJob output to JS
}
} else {
wp_send_json_error('Failed to upload file');
}
}
}
add_action('wp_ajax_trigger_webjob', 'trigger_webjob_with_file');
add_action('wp_ajax_nopriv_trigger_webjob', 'trigger_webjob_with_file');
< /code>
Ich werde mein Python -Skript nicht einschließen, aber es wird mit einer Shell -Datei ausgeführt, in der nur < /p>
angezeigt wird#!/bin/bash
python3 stitchImages.py "$1"
< /code>
und für den vollständigen Kontext dessen, was das Python -Skript die Datei liefert, endet mit -< /p>
if status == cv2.Stitcher_OK:
print("Stitching successful!")
output_filename = "stitched_image.png"
wp_uploads_folder = os.path.join(os.getcwd(), 'wp-content', 'uploads')
if not os.path.exists(wp_uploads_folder):
os.makedirs(wp_uploads_folder)
output_path = os.path.join(wp_uploads_folder, output_filename)
cv2.imwrite(output_path, cv2.cvtColor(stitched_image_rgb, cv2.COLOR_RGB2BGR))
# Return the URL instead of file path
output_url = f"https://omitted.azurewebsites.net/wp-co ... t_filename}"
print(f"Stitched image URL: {output_url}")
< /code>
Wenn ich auf der Seite auf der Seite auf die Webjobs -Schaltfläche klicke, wird es für einige Sekunden geladen und kehrt einfach zurück zu seiner Originalseite zurück und kehrt mit nichts Uplaodiertes zu seiner Originalseite zurück. Azure hat keine protokollierten Webjob -Auslöser oder -fehler. Ich bin offen dafür, dies zu manövrieren, wenn etwas logischer sinnvoller ist, da ich möchte, dass mein Anblick nutzbar ist und einen Sinn macht, wenn ein anderer Ingenieur sein Make -up betrachten sollte. Wieder neu in Azure und WordPress, also vergib mir, wenn dies keinen Sinn ergibt.
Azure Webjobs mit WordPress WebApp? ⇐ Php
-
- Similar Topics
- Replies
- Views
- Last post