IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Upload et renommage des fichiers


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 11
    Par défaut Upload et renommage des fichiers
    Bonjour

    suite à cette source : Upload de gros fichiers par fragments (chunk) (ABCIWEB)


    Je viens de tester les différentes version et le script est super bien, par contre je n'arrive pas à trouver comment renommer automatiquement le fichier une foi envoyé.
    Par exemple:
    L'utilisateur envoi un fichier toto.jpg
    Il faut qu'il soit renommé automatiquement en 5695.jpg
    L'utilité est d’éviter les doublons dans le dossier (chaque nom de fichier aura un nom unique généré par une variable (numéro d'utilisateur).

    Merci encore de ton aide.

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Salut,

    Côté php, on peut définir l'adresse de destination du fichier dans la fonction Transfert(). Regardes le fichier d'exemple "UploadAjaxABCI.php" et son fichier serveur "UploadAjaxABCI_Upload.php" qui renomme les fichiers en cas de doublon sur le serveur, tu vois que la nouvelle adresse du fichier est passée dans la fonction Transfert(), et si tu ne passes aucun paramètre dans cette fonction elle utilise par défaut l'adresse : $dossier_destination.$nom_du_fichier_nettoye.

    Dans mes exemples les dossiers de destination sont à l'intérieur du dossier "Upload-Ajax-ABCI". Mais si par exemple ton dossier se nomme PHOTO et qu'il est situé au même niveau que le dossier "Upload-Ajax-ABCI", il faut remonter deux fois dans l'arborescence des dossiers pour définir l'adresse du dossier, soit en principe :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // Adresse du dossier de destination par rapport au dossier Php_Upload. 
    $dossier_destination = '../../PHOTO/';
     
    // Ensuite il te suffit de définir un nom pour ton fichier. Si tu utilises un numéro utilisateur prédéfini il est sans doute dans une variable de session que tu peux récupérer.
    session_start();
    $num_utilisateur = isset($_SESSION['num_utilisateur'])? $_SESSION['num_utilisateur'] : null;
     
    // Adresse finale
    $destination_fichier = $dossier_destination.$num_utilisateur.'.jpg';
     
    // Et plus loin dans ton code
    $up->Transfert($destination_fichier);

    Remarques que tous tes fichiers doivent être des fichiers jpg ou jpeg. Si l'on devait accepter les extensions "png" il faudrait récupérer l'extension pour créer le nom du fichier. En reprenant pour exemple le code serveur du fichier UploadAjaxABCI_Upload_Basique_Controle.php, le code complet donnerait :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    <?php
    $dossier_destination = '../../PHOTO/';
     
    // Par sécurité on n'autorise que certaines extensions
    $ext_ok = ['.jpg','.jpeg','.png'];
     
     
    // Pour récupérer les variables de session
    session_start();
     
    header('Content-type: text/html; charset=UTF-8');// Inutile depuis php 5.6
     
    // Charge les classes  php avec spl_autoload_register
    spl_autoload_register(function ($class) {require 'Classes/' . $class . '.php';});
     
    // Configuration de la classe d'upload avec un tableau
    $config = [
    	'dossier_destination' => $dossier_destination
           ,'extensions' => $ext_ok
    ];
     
    // Initialisation de la classe php d'upload
    $up = new UploadAjaxABCIServeur($config);
     
     
    // getParam("uniqid_form") renvoie l'identifiant de formulaire pour la vérification ci-dessous
    $uniqid_form = $up->getParam("uniqid_form");
     
    // Il est conseillé de ne pas supprimer cette ligne car c'est le token qui assure que ce script est appelé depuis le formulaire. Permet également de renvoyer un message en cas de timeout du serveur, connexion perdue ou non valide.
    if(!(isset($uniqid_form,$_SESSION['UploadAjaxABCI'][$uniqid_form]['token'])))
    {
    	$up->exitStatusErreur(SetMessages::get('UpAbVerifToken')); 
    }
     
    // Vérifie que la session utilisateur existe sinon on sort en envoyant un message d'erreur
    $num_utilisateur = isset($_SESSION['num_utilisateur'])? $_SESSION['num_utilisateur'] : null;
    if(!isset($num_utilisateur))
    {
            $up->exitStatusErreur("Votre numéro d'utilisateur n'est pas défini"); 
    }
     
     
    // Vérifie qu'un fichier ou qu'un fragment de fichier est joint dans la requête
    if($up->getFragment())
    {
            $nom_fichier_originel = $up->getParam("name");
            $extension_fichier = $up->getExtension($nom_fichier_originel);
     
            $up->Upload();
     
            $destination_fichier = $dossier_destination.$num_utilisateur.'.'.$extension_fichier;
     
            $up->Transfert($destination_fichier);
    }
     
    $up->exitReponseAjax();
    ?>

    Après tu pourrais aussi redimensionner automatiquement les images si besoin en prenant exemple sur les fichiers de redimensionnements.
    Voilà

  3. #3
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 11
    Par défaut
    Merci beaucoup ABCIWEB
    En fait après réflexion, il vaut mieux que le fichier soit renommé automatiquement mais que le nouveau nom soit remonté sur la page de formulaire "UploadAjaxABCI.php"
    Je n'arrive pas à trouver le fonctionnement pour le faire.
    Encore merci

    Code UploadAjaxABCI.php
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    <form class="formajaxabci" id="form_files1" action="#" method="post" style="margin-top:2em">
     <fieldset style="color:#900;border:3px solid #900;border-radius:5px;padding:1em">
        <legend>Ajouter un fichier : Images,Word,Excel,PDF</legend>
         <input type="file" multiple="multiple" name="upload" style="display:none">
         <input type="hidden" name="UpAbci_uniqidForm" value="<?=$UpAbci_uniqidForm?>">
         <input type="hidden" name="UpAbci_fragmentSize" value="<?=$UpAbci_fragmentSize?>">
     
    	 <!-- le bouton personnalisé ci-dessous remplacera le bouton d'upload standard des champs de type file grâce à l'option de configuration "config.customFileSelect" déclarée dans la configuration javascript en bas de page -->
         <input type = "button" value='Charger vos fichiers' class="bouton_fichiers" style="background-color:#CCC;border-radius:7px;height:2.5em;font-size:1.2em;cursor:pointer">
     
         <input type="submit" value="Envoyer" style="color:#900;height:2.5em;border-radius:7px;cursor:pointer">
     </fieldset>
    </form>
     
    <script src="Javascript/jquery.js"></script>
    <!-- UploadAjaxABCI.js est la version minifiée de UploadAjaxABCI_DEV.js -->
    <script src="Javascript/UploadAjaxABCI.js"></script>
     
    <script>
    "use strict"; // Vous pouvez supprimer cette ligne en cas d'utilisation d'autres scripts javascript qui ne supportent pas ce mode.
     
    // Destination de la requête ajax d'upload
    var destination_ajax = 'Php_Upload/UploadAjaxABCI_Upload.php';
     
    // FORMULAIRE 1
    var form1 = new UploadAjaxABCI(destination_ajax, '#form_files1', '#reponse_upload1');
     
    // configuration
     
    form1.config.filesExtensions = ['avi','divx','mp4','mkv','mpg','jpg','jpeg','png','gif','xls','xlsx','doc','docx','odt','txt','zip','7zip','rar']; // Extensions autorisées (un contrôle de sécurité supplémentaire est fait côté serveur). Inutile de mettre les variantes en majuscules.
     
    form1.config.customFileSelect = ".bouton_fichiers";// Je souhaite remplacer les boutons standards de sélection de fichiers du navigateur par des boutons personnalisés dont j'indique l'identifiant (ici une classe) dans cette option. 
     
    // Démarrage DOM chargé
    $(function(){form1.Start()});
     
     
     
     
     
    /*
    Pour mettre une séparation qui indique la provenance des fichiers suivant le bouton de sélection, voir un exemple dans "UploadAjaxABCI_Crop_multiple_multiple.php" (méthode "config.func_FileSelectAll").
    */
     
    // Démarrage DOM chargé
    $(function(){form2.Start()});
     
     
     
     
     
     
    // Démarrage DOM chargé
    $(function(){form4.Start()});
     
     
     
     
    // Démarrage DOM chargé
    $(function(){form6.Start()});
     
    </script>
    UploadAjaxABCI_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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    <?php 
    $dossier_destination1 = '../Upload1/'; 
    session_start();
    header('Content-type: text/html; charset=UTF-8');// Inutile depuis php 5.6
     
     
    // Charge les classes php avec spl_autoload_register
    spl_autoload_register(function ($class) {require 'Classes/' . $class . '.php';});
     
    $up = new UploadAjaxABCIServeur($dossier_destination1);
     
    // getParam("uniqid_form") renvoie l'identifiant unique (token) du formulaire.
    $uniqid_form = $up->getParam("uniqid_form");
     
    // Il est conseillé de ne pas supprimer cette ligne car c'est le jeton de sécurité (token) qui assure que ce script est appelé depuis le formulaire. Permet également de renvoyer un message en cas de timeout du serveur, connexion perdue ou non valide.
    if(!(isset($uniqid_form,$_SESSION['UploadAjaxABCI'][$uniqid_form]['token']))) $up->exitStatusErreur(SetMessages::get('UpAbVerifToken'));
     
     
    // getFragment() retourne true si un fichier (ou un fragment de fichier) est joint au formulaire, sinon false
    $fichier_en_cours = $up->getFragment();
    if($fichier_en_cours)
    {
    	// getParam("name") retourne le nom originel du fichier
    	$nom_fichier_originel = $up->getParam("name");
     
    	// getCleanFileName() retourne le nom du fichier nettoyé après suppression/remplacement des caractères spéciaux
    	$nom_fichier_nettoye = $up->getCleanFileName();
     
    	// getParam("id_form") retourne l'identifiant html du formulaire (#id ou .classe)
    	$id_form = $up->getParam("id_form");
     
    	// getParam("input_name") retourne le nom du champ de type file
    	$nom_input = $up->getParam("input_name");	
     
    	// On vérifiera les extensions avec la méthode "verifExtensions" car ce script traite différents formulaires. Si le paramètre passé à la méthode est un tableau vide, la vérification ne sera pas faite.
    	$filesExtensions = ['avi','divx','mp4','mkv','mpg','jpg','jpeg','png','gif','xls','xlsx','doc','docx','odt','txt','zip','7zip','rar'];
     
    	// Vérifie si l'extension du fichier correspond à un élément du tableau. La méthode "verifExtensions" prend en parramètre le nom du fichier et le tableau d'extensions autorisées et retourne true ou false. Si false on sort du script en envoyant un message dans le status html du fichier.
    	$verifExtensions = $up->verifExtensions($nom_fichier_nettoye, $filesExtensions);
    	if($verifExtensions == false) 
    	{
    		// Utilisez la fonction "exitStatusErreur ($value)" pour sortir du script en ajoutant un message qui sera concaténé au statut "info.status.erreur" de la classe javascript et envoyé dans le bloc html ayant la classe "UpAbci_status"
    		$up->exitStatusErreur(SetMessages::get('UpAbExtensionFichier'));
    	}	
     
         // Renommage des fichiers
    	 // Plutôt que de renommer le fichier en cas de doublon sur le serveur comme je le fais plus bas avec la méthode "renameIdenticName()", on pourrait sortir du script avant d'employer la méthode "Upload()" et envoyer un message d'erreur en faisant :
    	 /*
    	if(is_file($destination_fichier))
    	{
    		// J'ajoute le tableau de message nécessaire à l'affichage du message ayant l'index 'ficherExisteDeja' - voir le mode d'emploi "Configuration serveur -> Gestion des messages" - avec new SetMessages('verifFileExist'), car il n'est pas chargé par défaut par les classes php)
    		new SetMessages('verifFileExist');
    		
    		$up->exitStatusErreur(SetMessages::get('ficherExisteDeja'));// "Ce fichier existe déjà"	
    	}
    	*/
     
    	// Si aucune vérification ni renommage n'est fait, les fichiers du serveur ayant le même nom que les fichiers téléchargés seront écrasés.
     
    	// INDISPENSABLE : on doit utiliser la méthode "Upload()" pour réaliser le processus d'upload. 
    	$up->Upload();
     
    	/* Le processus d'upload est dissocié de celui du transfert, pour permettre de traiter le fichier complet (par exemple pour faire des redimensionnements d'images en php) avant de le déplacer vers son emplacement définitif.
    	*/
     
    	// La méthode "getTempAdressFileComplete()" qui doit être utilisée après la méthode "Upload()", retourne l'adresse du fichier temporaire lorsqu'il est complet, sinon false. */
    	if($up->getTempAdressFileComplete())
    	{
    		/* Renommage des doublons avec la méthode "renameIdenticName($destination_fichier)".
    		La fonction de renommage peut-être assez gourmande en ressources si on utilise l'option d'incrémentation (non utilisée ici). Inutile de l'employer pour chaque fragment traité par ce script, d'où la condition "if($up->getTempAdressFileComplete())" qui permet de ne l'appliquer que lorsque le fichier est complet.
    		- Plus d'infos sur cette méthode dans le mode d'emploi section "Configuration Serveur", paragraphe "Méthodes de la classe UploadAjaxABCIServeur".*/
     
    		$destination_fichier = $up->renameIdenticName($destination_fichier);
    		// Si vous préférez écraser les fichiers existants il suffit de supprimer la ligne ci-dessus
    	}
     
    	/* INDISPENSABLE : on utilise la méthode "Transfert()" après la méthode "Upload()", avec comme argument optionnel la destination du fichier. Retourne true en cas de succès, sinon false. 
    	La méthode "Transfert()" déplace le fichier temporaire vers son emplacement définitif et supprime le cookie de sauvegarde identifiant ce fichier. Elle renseigne également des paramètres qui seront exploités par le reour ajax. Si vous ne souhaitez pas utiliser cette méthode voir le mode d'emploi : section "Configuration Serveur", paragraphe "Upload sans Transfert".
    	*/
    	$transfert = $up->Transfert($destination_fichier);
    	/* note: 
    	- Ici, on aurait logiquement pu mettre cette ligne à l'intérieur de la condition "if($up->getTempAdressFileComplete() != false)". Je la met ici pour montrer que la méthode "Transfert" fait automatiquement cette vérification.
    	*/
     
    	//Si l'on doit indiquer les droits d'accès du fichier, par exemple 604, on pourrait faire
    	/*if($transfert && !@chmod($destination_fichier,0604))
    	{
    		// Efface le fichier et envoie un message si erreur
    		unlink($destination_fichier);
    		$up->exitStatusErreur(SetMessages::get('UpAbConfigChmod'));
    	}*/
    }
     
    /* 
    INDISPENSABLE : La méthode "exitReponseAjax()" doit être appelée en fin de script et APRES l'utilisation de la méthode "Transfert()" pour retourner les informations nécessaires à la requête Ajax. 
    
    Entre l'utilisation de ces deux méthodes, on peut réaliser d'autres opérations, par exemple :
    */
     
    // "getTransfertOk()" à utiliser après la méthode "Transfert()", renvoie true si le fichier complet a été déplacé avec succès vers son emplacement définitif, sinon false (alternativement on pourrait tester le retour de la méthode "Transfert()").
    if($up->getTransfertOk())
    {
    	// C'est dans cette condition qu'il conviendrait par exemple d'enregistrer la destination du fichier en bdd
    	/*
    		$bdd_ok = enregistrement du nom ou de la destination du fichier en bdd...
    	*/
     
    	// Et par exemple envoyer un message de confirmation dans le statut du fichier
    	/*
    	if ($bdd_ok) 
    	{
    		//Utilisez la méthode "addStatusOk($value)" si vous souhaitez envoyer des messages qui seront concaténés au statut "info.status.ok" (de la classe javascript) qui renseigne le bloc html ayant la classe "UpAbci_status". Par exemple :
    		$up->addStatusOk(", enregistrement en bdd ok.");
    		// affichera "Téléchargement ok, enregistrement en bdd ok." si vous n'avez pas modifié la valeur de "info.status.ok" dans la configuration javascript.
    	}
    	*/
     
    	// Dans le cas des formulaires n°6 et n°7 le message javascript "info.status.ok" a été configuré vide. On souhaite uniquement afficher un message textuel si le fichier a été renommé (qu'il ait été nettoyé ou renommé à cause d'un doublon sur le serveur)
    	if (isset($id_form, $destination_fichier, $nom_fichier_originel) && ($id_form == '#form_files5' || $id_form == '#form_files6'))
    	{
    		// On ne doit pas utiliser la variable "$nom_fichier_nettoye" précédemment définie pour faire la comparaison avec le $nom_fichier_originel car le nom du fichier peut aussi être modifié en cas de doublon sur le serveur puisque j'utilise $up->renameIdenticName() prédédemment. 
     
    		$nom_final = pathinfo($destination_fichier, PATHINFO_FILENAME);
    		$extension_fichier = pathinfo($destination_fichier, PATHINFO_EXTENSION);
    		$nom_final = trim($extension_fichier) != '' ? $nom_final.'.'.$extension_fichier : $nom_final;
     
    		if ($nom_fichier_originel != $nom_final)
    		{
    			$up->addStatusOk(SetMessages::get('UpAbRenomme').':&nbsp;'.$nom_final);
    		}
    	}
    }
     
     
     
    // On peut retourner directement des informations texte ou html dans le bloc html ayant la classe "UpAbci_infosServer" en utilisant la méthode "addInfosServer ($value)". Ici je choisi de faire afficher un message si aucun fichier n'est joint lors de l'envoi du formulaire.
    if (!$fichier_en_cours) 
    {
    	$up->addInfosServer(SetMessages::get('UpAbAucunFichierTraite'));// SetMessages::get('UpAbAucunFichierTraite') renvoie "Aucun fichier traité"
    }
    // Notez qu'il existe une méthode nommée addMixteServer() qui permet d'envoyer tout type de contenu (tableau, texte ou html) dans le troisième paramètre des méthodes javascript événementielles "config.func_FileEndEach()" et "config.func_FormEnd()", afin de pouvoir  exploiter ce contenu en javascript.
     
     
     
    // *INDISPENSABLE dans tous les cas : Envoi des informations nécessaires pour terminer le script javascript avec "exitReponseAjax()"
    $up->exitReponseAjax();
    ?>

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Citation Envoyé par gachetg35 Voir le message
    Merci beaucoup ABCIWEB
    En fait après réflexion, il vaut mieux que le fichier soit renommé automatiquement mais que le nouveau nom soit remonté sur la page de formulaire "UploadAjaxABCI.php"
    Je n'arrive pas à trouver le fonctionnement pour le faire.
    Renommé automatiquement comment ? Comme dans les exemples qui renomment les fichiers en ajoutant un suffixe unique, ou avec simplement le numéro identifiant de l'utilisateur (que tu devrais avoir dans une variable de session), ou encore avec le nom du fichier + le numéro identifiant de l'utilisateur comme suffixe ?
    Et as-tu ce numéro identifiant dans une variable de session ?

    Donnes-moi tout le processus détaillé et les variables dont tu disposes si tu veux que je t'aide, car et je ne vais pas recommencer cinquante fois alors que tu as tous les élements pour le faire toi-même. Aussi tu as supprimé des lignes dans le code que tu donnes dans le premier script mais tu en a laissé certaines qui vont forcément produire un bug, notamment les lignes$(function(){form2.Start()}); $(function(){form4.Start()});$(function(){form6.Start()}); dont les variables form2, form4 et form6 ne sont maintenant plus définies.

    Prends du temps afin de définir le meilleur processus pour enregistrer tes photos en fonction de l'utilisation ultérieure, car je ne vais pas refaire le code cinquante fois.

  5. #5
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 11
    Par défaut
    En fait, j'ai une page de formulaire qui crée des ticket d'assistance,

    1er étape

    Page ajout de ticket avec (en simplifiant pour l'exemple) une saisie de texte et l'upload fichier.
    (A cet étape, je ne connais pas encore le numéro de ticket d'assistance.)
    Il me faudrait donc le nom complet du fichier uploadé que je l'ajoute à mon formulaire de saisie de texte avec une variable hidden.

    2eme étape
    Envoi du formulaire vers ma page php qui ajoute le ticket à la bdd ( et qui crée automatiquement un numéro de ticket)
    Dans la bdd il y aura donc le numéro de ticket, le texte du ticket et le nom du fichier avec son extension.

    3eme étape
    Pour visualisé le ticket, je fais ma requette sql qui affiche le texte et le nom du fichier avec l'extension.
    pour visualisé le fichier je n'ai plus qu'à ajouter le lien du serveur devant (<a href="www.xxxx.com/upload/nomfichier.extention"/>)

    Voilà, en resumé

  6. #6
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    @gachetg35 Pourquoi ne pas faire les étapes 1 et 2 en même temps ?

    On peut très bien envoyer un ou plusieurs champs de texte en même temps que des fichiers et renseigner des champs de bdd si les fichiers sont correctement uploadé sans passer par un second formulaire. Quel est l'intérêt de faire deux formulaires plutôt qu'un ?

    Autres questions :
    - l'upload d'un fichier est-il obligatoire pour ouvrir u ticket ?
    - L'utilisateur peut-il uploader plusieurs fichiers pour un même ticket ?

Discussions similaires

  1. Renommage des fichiers sur ftp
    Par fanah dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 31/03/2009, 13h46
  2. [Upload] le download des fichiers
    Par gabi27685 dans le forum Langage
    Réponses: 3
    Dernier message: 28/03/2008, 16h55
  3. Réponses: 14
    Dernier message: 14/03/2007, 20h32
  4. [Upload] Suppression auto des fichiers uploadés
    Par silver.spike dans le forum Langage
    Réponses: 5
    Dernier message: 09/03/2007, 12h27
  5. routine de renommage des fichiers
    Par jeremy.blanche dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 11/08/2006, 12h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo