51 lines
No EOL
2.2 KiB
Python
51 lines
No EOL
2.2 KiB
Python
# Importation des modules nécessaires
|
|
import requests # Pour effectuer des requêtes HTTP
|
|
import streamlit as st # Pour créer l'interface utilisateur web
|
|
|
|
# Définition de la fonction principale pour l'onglet 4 de l'application
|
|
def app_tab4():
|
|
# Affichage d'un en-tête dans l'interface utilisateur
|
|
st.header("Images")
|
|
|
|
# Préparation des en-têtes HTTP pour l'authentification
|
|
http_headers = {"Authorization": f"Bearer {st.session_state['bearer_token']}"}
|
|
|
|
# Section pour afficher les images disponibles
|
|
st.write("Images disponibles")
|
|
|
|
# Récupération de la liste des images depuis le serveur
|
|
response = requests.get(f"{st.session_state['fabriquedoc_endpoint']}/images/", headers=http_headers)
|
|
images = response.json()["images"]
|
|
|
|
# Création d'un menu déroulant pour sélectionner une image
|
|
selected_image = st.selectbox("Choisis une image:", images)
|
|
|
|
# Récupération et affichage de l'image sélectionnée
|
|
image_response = requests.get(f"{st.session_state['fabriquedoc_endpoint']}/images/{selected_image}", headers=http_headers)
|
|
image_data = image_response.content
|
|
st.image(image_data)
|
|
|
|
# Section pour envoyer une nouvelle image
|
|
st.write("Envoyer une image")
|
|
|
|
# Création d'un widget pour télécharger des fichiers
|
|
uploaded_files = st.file_uploader("Choisis un fichier image",
|
|
accept_multiple_files=True)
|
|
|
|
# Traitement des fichiers téléchargés
|
|
if uploaded_files is not None:
|
|
for uploaded_file in uploaded_files:
|
|
# Préparation de l'URL pour l'envoi de l'image
|
|
url = f"{st.session_state['fabriquedoc_endpoint']}/images/"
|
|
|
|
# Création d'un objet FormData pour l'envoi du fichier
|
|
files = {"file": uploaded_file}
|
|
|
|
# Envoi du fichier au serveur
|
|
response = requests.post(url, files=files, headers=http_headers)
|
|
|
|
# Vérification du statut de la réponse
|
|
if response.status_code < 300:
|
|
st.write(f"Le fichier {uploaded_file.name} a été envoyé avec succès !")
|
|
else:
|
|
st.write(f"L'envoi du fichier {uploaded_file.name} a échoué.") |