none
Problème d'uploads de fichier RRS feed

  • Discussion générale

  • Bonjour, je trvail actuellement sur un projet en ASP.Net pour une entreprise. Mon problème est le suivant : J'ai un formulaire avec du texte et des fichiers, le texte est passé en POST de dans une requête Ajax JQuery, tout marche bien. Le souci, c'est les fichiers, je veux les récupérer dans Request.Files, mais je n'y arrive pas car Request.Files reste désespérément vide.

    Précisions sur le code : mes vues sont en .cshtml, j'utilise JQuery, la librairie c# System.Web.Mvc

    code:

    Jquery:

     $(document).on('submit', '#form_new_litige', function(){
            try {
               var numero_isca = $('#numero_ISCA').val();
               var date_chargement = $('#date_chargement').val();
               var client = $('#infos_destinataire').val();
               var date_livraison_initiale = $('#date_livraison_prévue').val();
               var rdv = $('#heure_rdv').val();
               var date_livraison_effective = $('#date_livraison_effective').val();
               var nb_palette = $('#nb_palettes').val();
               var poids = $('#poids').val();
               var retour_marchandise = $('#retour_marchandise').is(':checked');
               var num_retour = $('#numero_retour').val();
               var relivraison = $('#relivraison').is(':checked');
               var nouveau_bl = $('#nouveau_bl').val();
               var litige_cloture = $('#cloture').is(':checked');
               var transporteur = $('#Transporteur').val();
               var date_creation = $('#date_creation').val();
               var date_reception = $('#date_reception').val();
    
               console.log(date_reception);
    
    
               $.ajax({
                   type: "POST",
                   url: "/Litiges/SaveLitige",
                   data: '{numero_bl:"' + num_bl_courant + '", numero_isca:"' + numero_isca + '", date_chargement:"' + date_chargement + '", client:"' + client + '", date_livraison_initiale:"' + date_livraison_initiale + '", rdv:"' + rdv + '", date_livraison_effective:"' + date_livraison_effective + '", nbr_palette:"' + nb_palette + '", poids:"' + poids + '", transporteur:"' + transporteur + '", retour_marchandise:"' + retour_marchandise + '", num_retour:"' + num_retour + '", relivraison:"' + relivraison + '", nouveau_bl:"' + nouveau_bl + '", litige_valide:"' + litige_cloture + '", date_creation:"' + date_creation + '", date_reception:"' + date_reception + '"}',
                   enctype: 'multipart/form-data',
                   contentType: "application/json; charset=utf-8",
                   dataType: "json",
                   success: function (msg) {
    
                       if (msg.ok) {
                           for (var litige_courant = 1; litige_courant <= i; litige_courant++) {
                               
                               var type_litige = $('#description_' + litige_courant).val();
                               var commentaire_Jung = $('#commentaire_jung_' + litige_courant).val();
                               var commentaire_client = $('#commentaire_client_' + litige_courant).val();
                               var imputation = $('#imputation_' + litige_courant).val();
                               $.ajax({
                                   type: "POST",
                                   url: "/Litiges/SaveInfosLitige",
                                   data: '{num_bl:"' + num_bl_courant + '", compteur:"' + litige_courant +  '", type_litige:"' + type_litige + '", commentaire_Jung:"' + commentaire_Jung + '", commentaire_client:"' + commentaire_client + '", imputation:"' + imputation + '"}',
                                   contentType: "application/json; charset=utf-8",
                                   dataType: "json",
                                   success: function (msg) {
                                       if (msg.ok) {
                                           display_success("modifications effectuées");
                                       }
                                       else {
                                           display_error("échec de la modification : " + msg.error);
    
                                       }
                                   }
                               })
                           }
                       }
                       else {
                           display_error("échec de la modification : " + msg.error)
                       }
    
                   }
               });
               
           }
           catch (err) {
               console.log(err.message);
               display_error(err.message);
               return false;
           }
            return false;
    
        });

    HTML:

    @{
        Layout = "~/Views/Templates/_Clients.cshtml";
    }
    
    <div class="container">
        <div class="row">
            <div class="container">
                <form id="form_litige" method="post">
                    <div class="row">
                        <div class="controls col-lg-offset-3 col-lg-6">
                            <div class="input-group has-feedback">
                                <span class="input-group-addon">Numéro de BL</span>
                                <input id="numero_bl" name="numero_bl" class="form-control" type="text" placeholder="Numéro de BL" class="input-large" value="00">
                                <span class="glyphicon glyphicon-search form-control-feedback"></span>
                            </div>
                        </div>
                    </div>
                    <br />
    
                    <div class="container text-center">
                        <button class="btn btn-danger" type="submit">Rechercher</button>
                    </div>
                </form>
            </div>
        </div>
        <br />
        <div id="affichage_get_litige" class=""></div>
    
    
        <div id="affichage_litige" class=""></div>
    
    
        
    
        
    </div>
    <div class="modal fade" id="affiche_image_litige" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header modal-header-danger">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                    <h4 class="modal-title" id="myModalLabel">Pièce jointe</h4>
                </div>
                <div class="modal-body">
                    <div class="" id="pop_image">
    
                    </div>
                </div>
                <div class="modal-footer">
                </div>
            </div>
        </div>
    </div>
    
    
    
    
    @Scripts.Render("~/Assets/Scripts/Clients/Litiges/CreerLitige.js")

    controleur c# (partie fichier) :

     foreach (string filename in HttpContext.Request.Files)
                    {
                        Debug.WriteLine("test");
                        HttpPostedFileBase fichier = Request.Files[filename];
                        string fname = Path.GetFileName(filename);
                        fichier.SaveAs(@"\\neon-01\c$\Fichiers Clients\" + fname);
                    }

    partie du code où je génère le formulaire (en c#):

                string html = "";
                html += "<form id='form_new_litige' method='post'>";
                html += "<div class='controls col-lg-offset-3 col-lg-6 well' id = 'skeleton_litige'>";
                html += "<h3><strong> Informations de création</strong><h3>";
                html += "<div class='input-group has-feedback'><span class='input-group-addon'>Date de création</span><input id='date_creation' name='date_creation' class='form-control' type='text'  value='" + date_creation + "' readonly><span class='form-control-feedback'></span></div><br/>";
                html += "<div class='input-group has-feedback'><span class='input-group-addon'>Date de réception</span><input id='date_reception' name='date_reception' class='form-control' type='text' value='" + date_reception + "'><span class='form-control-feedback'></span></div><br/>";
                html += "<h3><strong> Informations sur le BL</strong></h3>";
                if (litige.Tables[1].Rows.Count > 0)
                {
                    html += "<div class='input-group has-feedback'><span class='input-group-addon'>Numéro ISCA</span><input id='numero_ISCA' name='numero_ISCA' class='form-control' type='text' placeholder='Numéro CM' value='" + litige.Tables[1].Rows[0]["code_isca"].ToString() + "' readonly><span class='form-control-feedback'></span></div><br/>";
                }
                else
                {
                    html += "<div class='input-group has-feedback'><span class='input-group-addon'>Numéro ISCA</span><input id='numero_ISCA' name='numero_ISCA' class='form-control' type='text' placeholder='Numéro CM' value='' readonly><span class='form-control-feedback'></span></div><br/>";
    
                }
                html += "<div class='input-group has-feedback'><span class='input-group-addon'>Destinataire</span><textarea id='infos_destinataire' name='infos_destinataire' class='form-control'  value='' readonly>" + litige.Tables[0].Rows[0]["nom_destinataire"].ToString() + "\n" + litige.Tables[0].Rows[0]["adresse_1"].ToString() + "\n" + litige.Tables[0].Rows[0]["adresse_2"].ToString() + "\n" + litige.Tables[0].Rows[0]["adresse_3"].ToString() + "\n" + litige.Tables[0].Rows[0]["adresse_4"].ToString() + "</textarea><span class='form-control-feedback'></span></div><br/>";
    
                html += "<div class='input-group has-feedback'><span class='input-group-addon'>Date de chargement</span><input id='date_chargement' name='date_chargement' class='form-control' type='text' value='" + litige.Tables[0].Rows[0]["jour_chargement"].ToString() + "/" + litige.Tables[0].Rows[0]["mois_chargement"].ToString() + "/" + litige.Tables[0].Rows[0]["annee_chargement"].ToString() + "' readonly/><span class='form-control-feedback'></span></div><br/>";
    
    
                html += "<div class='input-group has-feedback'><span class='input-group-addon'>Transporteur</span><input id='Transporteur' name='Transporteur' class='form-control' type='text' value='"+ transporteur +"' readonly><span class='form-control-feedback'></span></div><br/>";
    
                html += "<div class='input-group has-feedback'><span class='input-group-addon'>Date de livraison prévue</span><input id='date_livraison_prévue' name='date_livraison_prévue' class='form-control' type='text' value='"+ date_livraison_demande +"' readonly><span class='form-control-feedback'></span></div><br/>";
                html += "<div class='input-group has-feedback'><span class='input-group-addon'>Heure de RDV</span><input id='heure_rdv' name='heure_rdv' class='form-control' type='text' value='"+ heureRDV +"' readonly><span class='form-control-feedback'></span></div><br/>";
                html += "<div class='input-group has-feedback'><span class='input-group-addon'>Date de livraison effective</span><input id='date_livraison_effective' name='date_livraison_effective' class='form-control' type='text' value='"+ date_livraison_finale +"' readonly><span class='form-control-feedback'></span></div><br/>";
                html += "<div class='input-group has-feedback'><span class='input-group-addon'>Nombre de palettes (au sol)</span><input id='nb_palettes' name='nb_palettes' class='form-control' type='text' value='"+ nbr_palette +"' readonly><span class='form-control-feedback'></span></div><br/>";
                html += "<div class='input-group has-feedback'><span class='input-group-addon'>Poids(en kg)</span><input id='poids' name='poids' class='form-control' type='text' value='"+ poids +"' readonly><span class='form-control-feedback'></span></div><br/>";
    
                html += "</div>";
    
                html += "<div id=new_litige_container></div><br/>";
                html += "<div class='controls col-lg-offset-3 col-lg-6 container text-center'><div class='well'><input type='button' class='btn btn-danger' id='add_new_litige' value='Ajouter un litige'><input type='button' class='btn btn-danger' id='remove_new_litige' value='Supprimer un litige'></div></div><br/>";
    
                html += "<br/><div id='gestion_retour' class='controls col-lg-offset-3 col-lg-6 well'>";
                html += "<h3><strong>Gestion des retours</strong></h3><br/>";
                if (retour_marchandise)
                {
                    html += "<div class='form-check'><label class='form-check-label'><input class='form-check-input' id='retour_marchandise' type='checkbox' checked> Retour de la marchandise</label></div><br/>";
    
                }
                else
                {
                    html += "<div class='form-check'><label class='form-check-label'><input class='form-check-input' id='retour_marchandise' type='checkbox'> Retour de la marchandise</label></div><br/>";
                }
                html += "<div class='input-group has-feedback'><span class='input-group-addon'>Numéro de retour</span><input id='numero_retour' name='numero_retour' class='form-control' type='text' placeholder='Numéro de retour' value='"+ num_retour +"'><span class='form-control-feedback'></span></div><br/>";
                html += "<h3><strong>Gestion relivraison</strong></h3><br/>";
                if (relivraison)
                {
                    html += "<div class='form-check'><label class='form-check-label'><input class='form-check-input' id='relivraison' type='checkbox' checked> Relivraison</label></div><br/>";
    
                }
                else
                {
                    html += "<div class='form-check'><label class='form-check-label'><input class='form-check-input' id='relivraison' type='checkbox'> Relivraison</label></div><br/>";
    
                }
                html += "<div class='input-group has-feedback'><span class='input-group-addon'>Nouveau BL</span><input id='nouveau_bl' name='nouveau_bl' class='form-control' type='text' placeholder='Nouveau BL' value='"+ nouveau_bl +"'><span class='form-control-feedback'></span></div><br/>";
                html += "<h3><strong>Validation</strong></h3><br/>";
                if (litige_valide)
                {
                    html += "<div class='form-check'><label class='form-check-label'><input class='form-check-input' type='checkbox' id='cloture' checked> Litige clôturé</label></div>";
    
                }
                else
                {
                    html += "<div class='form-check'><label class='form-check-label'><input class='form-check-input' type='checkbox' id='cloture'> Litige clôturé</label></div>";
    
                }
                html += "<div class='text-center'><input class='btn btn-danger' type='submit' id='valider_litiges' value='enregistrer les litiges'></div>";
                html += "</div>";
                html += "</form><br/>";
    
                return html;

    merci d'avance pour votre aide, et bon dev ;-)


    • Modifié alexay68 mercredi 14 septembre 2016 14:32
    mercredi 14 septembre 2016 13:23

Toutes les réponses


  • Bonjour,
    Le thread suivant peut-être va vous donner une idée: Request.Files is always null.

    Cordialement,
    Nina


    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    jeudi 15 septembre 2016 11:24
    Modérateur