Upload multiple

Eléphanteau du PHP | 11 Messages

27 févr. 2019, 13:53

Bonjour à toutes et tous,

Je dispose d'une mise en page avec un système d'upload multiple et j'aimerais
pouvoir envoyer plusieurs fichiers de type .jpg/.png/.gif vers un dossier
spécifique .
Toutefois ma pagination de codage .php ne me permet pas d'obtenir le
résultat voulu .
Mes mises en page seront incluses par la suite si je reçois un retour
de message .
Dans l'attente d'une suggestion ou aide de la part d'un internaute .

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

27 févr. 2019, 14:46

Toutefois ma pagination de codage .php ne me permet pas d'obtenir le
résultat voulu .
Personnellement, je n'ai rien compris.

Qu'est-ce qui ne marche pas ? Qu'as-tu essayé ? Quels sont le ou les messages d'erreurs ?
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 11 Messages

28 févr. 2019, 14:03

En réponse à ton message donc je m'exprime en Français si tu ne comprends pas
mes phrases qui sont correctement formulées;cela ne sert à rien de m'envoyer un retour sujet .
Pour ce qui est de ma demande donc c'est un système d'upload drag and drop
utilisé afin d'envoyer des fichiers .jpg/.png/.gif vers un dossier serveur spécifique .
Voici la mise en page .php afin d'obtenir un upload de fichiers multiple qui n'est
pas fonctionnelle à ce jour .
<?php
if (isset($_POST["submit"])) {
    $target_dir = "uploadphoto/";                              
    $taille_maxi = 10000000;
    $extensions = array('.jpg', '.jpeg', '.png', '.gif');
    $nbfichiersEnvoyes = count($_FILES['uploadfiles']['name']);
    for ($i = 0; $i < $nbfichiersEnvoyes; $i++) {
        $fichier = basename($_FILES['uploadfiles']['name'][$i]);
        // $fichier_temp = $_FILES['uploadfiles']['tmp_name'][$i];
        // $taille = $_FILES['uploadfiles']['size'][$i];
        $extension = strrchr($_FILES['uploadfiles']['name'][$i], '.');
        $target_file = $target_dir . $fichier;
        // move_uploaded_file($fichier_temp, $target_file);                     
        $check = getimagesize($_FILES["uploadfiles"]["tmp_name"][$i]);
        if ($check !== false) {
          //  echo "File is an image - " . $check["mime"] . ".";
            $uploadOk = 3;
        } else {
            echo "File is not an image.";
            $uploadOk = 0;
        }
 
 
        if (file_exists($target_file)) {
            echo "Sorry, ".$fichier ." file already exists.";
            $uploadOk = 0;
        }
 
        if ($_FILES["uploadfiles"]["size"][$i] > 10000000) {
            echo "Sorry, your file is too large.";
            $uploadOk = 0;
        }
 
        if ($extension != ".jpg" && $extension != ".png" && $extension != ".jpeg"
            && $extension != ".gif") {
            echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
            $uploadOk = 0;
        }
 
        if ($uploadOk == 0) {
            echo "Sorry, your file was not uploaded.";
 
        } else {
            if (move_uploaded_file($_FILES["uploadfiles"]["tmp_name"][$i], $target_file)) {                   
                echo "The file " . $fichier . " has been uploaded.";
            } else {
                echo "Sorry, there was an error uploading your file.";
            }
        }
    }
}
 
header('Location: indexupload.html');
?>
Une suggestion de ta part serait la bienvenue .
Merci pour ta compréhension .

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

28 févr. 2019, 17:42

Et donc, qu'est-ce qui ne marche pas ?
Où bloques-tu ?
Quels sont le ou les messages d'erreurs ?
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 11 Messages

28 févr. 2019, 23:02

Merci pour ton retour message donc ce qui ne fonctionne pas;c'est la réception des fichiers informatiques en
l'occurrence des images .jpg/.png/.gif vers le dossier spécifique relatif à la variable suivante : $target_dir = "uploadphoto/" .
Je ne parviens pas à récupérer les données informatiques à partir de ma mise en page .html
<!DOCTYPE html>
<html lang="en" >

<head>
<meta charset="UTF-8"> 
<link rel="stylesheet" href="cssupload/normalize.min.css">
<link rel='stylesheet' href='cssupload/filepond-plugin-image-preview.min.css'>
<link rel='stylesheet' href='cssupload/filepond.min.css'>
<link rel="stylesheet" type="text/css" href="fonts/font-awesome-4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="fonts/icon-font.min.css">
<link rel="stylesheet" type="text/css" href="cssupload1/util.css">
<link rel="stylesheet" type="text/css" href="cssupload1/main1.css">
<link rel="stylesheet" href="cssupload/style.css">
<style>
.responsive {
  width: 50%;
  max-width: 200px;
  height: auto;
}
</style>
</head>

<body>

</br>
</br>
<center><form method="post" action="uploadphoto.php" enctype="multipart/form-data">
<input type="file" name="uploadfiles[]"
       class="responsive" width="200" height="50"
       multiple
       data-max-file-size="3MB"
       data-max-files="3" />

	    <button class="contact100-form-btn">
		<span>
		Send
		<i class="fa fa-at" aria-hidden="true"></i>
		</span>
			

</form></center>



<script src='jsupload/filepond-plugin-file-encode.min.js'></script>
<script src='jsupload/filepond-plugin-file-validate-size.min.js'></script>
<script src='jsupload/filepond-plugin-image-exif-orientation.min.js'></script>
<script src='jsupload/filepond-plugin-image-preview.min.js'></script>
<script src='jsupload/filepond.min.js'></script>

  

<script  src="jsupload/index.js"></script>




</body>

</html>
 
Je ne dispose pas du lien afin que tu puisses visualiser "l'image" de ladite mise en page .html/.css mais il s'agit d'un système de
type Drag and Drop qui permet d'uploader plusieurs images et par la suite les envoyer vers un dossier serveur spécifique .
J'ai déjà réalisé un système d'upload à image unique qui est fonctionnel mais là je ne parviens pas à obtenir le résultat voulu .

Mammouth du PHP | 1967 Messages

01 mars 2019, 09:24

tu n'as pas d'input de type submit, ton formulaire est probablement pas envoyé. de plus il te faut un input avec name="submit" afinde passer ta première condition et déclencher ton script php. cela peut facilement être le même élément.
<ipnut type="submit" name="submit" value="send" />
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 11 Messages

01 mars 2019, 11:53

En réponse à Spols;merci pour ton retour message toutefois avec la ligne de code suivante :
<form method="post" action="uploadphoto.php" enctype="multipart/form-data">
La réception à partir d'un formulaire .php se fait correctement vers un compte de messagerie
spécifique .
Pour ce qui est d'un formulaire .php avec un système d'upload à image unique;j'utilise la ligne
de code suivante : <input type="file" name="fileToUpload" id="fileToUpload" onchange="document.getElementById('file_input').value = this.value;">
et tout est fonctionnel donc je ne pense pas qu'en ajoutant un input de type submit;la réception
des fichiers "uploadés" se fera de cette manière mais je vais essayer et je t'enverrais par la suite le résultat de ta suggestion .
De plus il me semble qu'il faudra aussi modifier certaines variables de mon fichier .php

Eléphanteau du PHP | 11 Messages

03 mars 2019, 12:25

Suite à ta suggestion relative à l'ajout d'un input de type "submit" au sein de ma page.html
afin de transférer des fichiers informatiques .jpg/.png/.gif donc j'ai ajouté ta ligne de code
de la manière suivante :
 <center><form method="post" action="uploadphoto.php" enctype="multipart/form-data">
<input type="submit" name="submit" value="send" 
       class="responsive" width="200" height="50"
       multiple
       data-max-file-size="3MB"
       data-max-files="3" />

	    <button class="contact100-form-btn">
		<span>
		Send
		<i class="fa fa-at" aria-hidden="true"></i>
		</span>
			

</form></center>
Mais il n'y a aucune réception des données informatiques via le dossier spécifique qui est visible via
la variable suivante :
    $target_dir = "uploadphoto/";  

Mammouth du PHP | 1967 Messages

04 mars 2019, 16:28

J'ai l'impression que tu mélange tout.

je ne sais pas comment fonctionne ton formulaire mono fichier, mais il semble qu'il ai du javascript. sais tu comment il fonctionne ?

ensuite c'est ton <button class="contact100-form-btn"> qu'il faut remplacer par l'input type submit pas ton champs fichier.

Un formulaire html doit avoir un évennement qui l'envoi le plus commun est d'utiliser un input de type submit, mais il peut être fait par du javascript par exemple.

Commence par vérifier que ton formulaire est bien envoyé avec un var_dump($_POST); en début de script php par exemple. tu verra ainsi si les infos que tu attends dans ta condition est bien remplie.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 11 Messages

05 mars 2019, 10:20

Merci pour ton retour message; voici mon fichier .php qui fonctionne correctement pour un envoi de courriel vers un compte de messagerie spécifique et une réception de fichiers informatiques de type .jpg/.png/.gif à fichier unique vers un dossier serveur spécifique .
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
$to = "            ";
$h = "From : " . $to;
$sujet = "Courriel";
$message = '';
$post = $_POST;
reset($post);
while (list ($key , $value) = each($post)) {
  $message .= "$key : $value \r\n";}
mail($to, $sujet, $message, $h);
header("        ");
header( 'content-type: text/html; charset=utf-8' );
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
  $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
  if($check !== false) {
	echo "File is an image - " . $check["mime"] . ".";
	$uploadOk = 1;
  } else {
	echo "File is not an image.";
	$uploadOk = 0;
  }
}
// Check if file already exists
if (file_exists($target_file)) {
  echo "Sorry, file already exists.";
  $uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
  echo "Sorry, your file is too large.";
  $uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
   && $imageFileType != "gif" ) {
  echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
  $uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
  echo "Sorry, your file was not uploaded.";
  // if everything is ok, try to upload file
} else {
  if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
	echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
  } else {
	echo "Sorry, there was an error uploading your file.";
  }
}

header( 'content-type: text/html; charset=utf-8' );
header('Location: index1.html');


?>
Pour ce qui est de l'ajout de la variable suivante : var_dump($_POST) donc je préfère cette variable: $post = $_POST; qui permet la réception de message mais est-elle nécessaire pour une réception de données informatiques vers un dossier serveur spécifique si oui donc je vais rajouter les lignes de code .php suivantes :
$to = "            ";
$h = "From : " . $to;
$sujet = "Courriel";
$message = '';
$post = $_POST;
reset($post);
while (list ($key , $value) = each($post)) {
$message .= "$key : $value \r\n";}
mail($to, $sujet, $message, $h);
à la place de cette variable if (isset($_POST["submit"])) {
En ce qui concerne la modification du "button" par un input de type submit; je n'aurais plus ma mise en page .css et je voudrais garder ce type de mise en page .
Pour ce qui est du javascript;dois-je modifier un fichiers informatiques relatif au système d'envoi Drag and Drop .

Mammouth du PHP | 1967 Messages

05 mars 2019, 14:15

Commence par lire quelques tutoriel sur php car tu ne semble pas en comprendre les bases.

var_dump n'est pas une variable mais un fonction servant au debuggage afin de savoir ce que contient une variable.
if(... n'est pas non plus une variable mais une condition.

Quant à ta mise en page css, il n'est pas très compliqué de la rétablir.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 11 Messages

06 mars 2019, 09:56

Merci pour ta réponse donc je vais essayer ta suggestion afin de mettre à jour cette fonctionnalité .
Voici les modifications du fichier .html :
<center><form method="post" action="uploadphoto.php" enctype="multipart/form-data">
       <class="responsive" width="200" height="50"
       multiple
       data-max-file-size="3MB"
       data-max-files="3" />

	   <input type="submit" name="submit" value="send" >
		<span>
		Send
		<i class="fa fa-at" aria-hidden="true"></i>
		</span>
			

</form></center>
Et les modifications relatives au fichier .php :
<?php
    var_dump($_POST);
    $target_dir = "uploadphoto/";                              
    $taille_maxi = 10000000;
    $extensions = array('.jpg', '.jpeg', '.png', '.gif');
?>
Donc je remplace la condition suivante if (isset($_POST["submit"])) { par celle ci : var_dump($_POST);
Si c'est exact;je vais vérifier si ces modifications peuvent pallier ce problème de transmission des données informatiques .

Eléphanteau du PHP | 11 Messages

09 mars 2019, 13:16

Je suis toujours en attente de ton retour message Spols;aurais tu l'obligeance de me répondre afin
que je puisse vérifier si cette mise en page est correcte à son utilisation .
Merci pour ta compréhension .

Mammouth du PHP | 1967 Messages

09 mars 2019, 13:18

Commence par lire quelques tutoriel sur php car tu ne semble pas en comprendre les bases.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 11 Messages

10 mars 2019, 13:03

Merci pour ton retour mais tu ne réponds pas exactement à ma demande .
Je réalise des sites internet donc j'attends un apport d'aide pour certaines
lignes de code .php .
Si tu es apte à me répondre;j'attends une réponse relative à ma demande .