Bonjour,
Débutant en programmation web, je me demande comment indiquer à un serveur PHP de rafraichir une page web lorsqu'il reçoit un fichier (jpg) par une requête POST.
Mon serveur Apache est sur Mac avec MAMP.Ci-dessous les codes PHP.
Le script "photos.php" affiche les images et se rafraîchit automatiquement toutes les 10 secondes.
Je voudrais qu'il ne se rafraîchisse uniquement lorsque une nouvelle image arrive.
Côté client, une requête est envoyée en Python, lorsqu'un nouveau fichier est disponible:
Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 # send file to server using POST request files = {'userfile': (filename, open(filename, 'rb')),} # 192.168.1.10:8081 est mon serveur local response = requests.post('http://192.168.1.10:8081/upload.php', files=files) print(response)
Côté serveur PHP:
fichier "index.html"
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <html> <head> </head> <body> <!-- Le type d'encodage des données, enctype, DOIT être spécifié comme ce qui suit --> <form enctype="multipart/form-data" action="upload.php" method="post"> <!-- MAX_FILE_SIZE doit précéder le champ input de type file --> <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> <!-- Le nom de l'élément input détermine le nom dans le tableau $_FILES --> Envoyez ce fichier : <input name="userfile" type="file" /> <input type="submit" value="Envoyer le fichier" /> </form> </body> </html>
fichier "upload.php"
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 <html> <body> <?php $uploaddir = 'img/'; $uploadfile = $uploaddir.basename($_FILES['userfile']['name']); echo $_FILES['userfile']['name']; echo '<pre>'; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { echo "Le fichier est valide, et a été téléchargé avec succès. Voici plus d'informations :\n"; } else { echo "Attaque potentielle par téléchargement de fichiers. Voici plus d'informations :\n"; } echo 'Voici quelques informations de débogage :'; print_r($_FILES); echo '</pre>'; ?> </body> </html>
fichier "photos.php"
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <html> <body> <?php // Demonstrate the use of header() function // to refresh the current page echo "Page will refresh in every 10 seconds</br></br>"; //function will refresh the page // in every 10 second echo header("refresh: 10"); $imgs = glob("img/*.jpg", GLOB_BRACE); $i=0; foreach ($imgs as $img) { if (($i%8) == 0) { echo "</br>"; } $i += 1; echo "<img src='$img' height=100 alt=''>"; } ?> </body> </html>
Votre aide est la bienvenue!
Partager