2017-10-10 2 views
0

J'ajout mp4 à mon contrôleur mvc, mais Ajax retourne cette erreur: "Erreur d'erreur non trouvé undefined" Mon point de vuetéléchargement mp4 via ajax au contrôleur mvc défaut

<form id="CrearRecurso"> 
<div class="container">  
    <div class="form-group"> 
     @Html.LabelFor(m => m.Imagen) 
     @Html.TextBoxFor(m => m.Imagen, new { type = "file", name = "Imagen" }) 
     @Html.ValidationMessageFor(m => m.Imagen) 
    </div> 
    <button id="submiter" type="submit" class="btn btn-primary">Crear recurso!</button> 
</div> 

Ceci est mon partie ajax, où j'appelle mon API. Mais je reçois une erreur que vous verrez ci-dessous après le code.

$('#CrearRecurso').submit(function (e) {    
      var formData = new FormData($('#CrearRecurso').get(0)); 
      jQuery.support.cors = true; 
      var files = $("#Imagen").get(0).files; 
      var name = files.name; 
      if (files.length > 0) { //checks if there is a file 

       if (window.FormData !== undefined) { 
        $.ajax({ 
         type: "post", 
         url: '/api/mycontroller/Create?MyId=' + LeccionId, 
         contentType: false, 
         processData: false, 
         data: formData, 
         success: function (result) { 
          //do something 

         }, 
        error: function (ts) { alert(ts.responseText) } 
        }); 
       } 
       } 
      } 
     }); 
    }); 

Lorsque je télécharger pdf ou jpg il est correct, mais quand j'utilise des fichiers mp4, je reçois cette erreur dans l'alerte. error I get when uploading mp4 files

Le modèle lié au téléchargement de fichiers est le suivant:

[Required] 
    [DataType(DataType.Upload)] 
    public HttpPostedFileBase Imagen { get; set; } 

Pourquoi cela arrive cela? Je vous remercie.

Mise à jour 1: la taille de mon fichier est d'environ 50mb. Cela pourrait-il être lié au problème?

+0

Pour commencer votre ne pas annuler le défaut de soumettre afin de vous faire une requête GET à la méthode qui a généré la vue ainsi que votre appel ajax –

+0

' '/ api/MyController/Créer? MyId = '+ LeccionId' => de votre erreur, il ne frappe pas cette méthode d'action, est-ce que 'LeccionId' est nul ou vide? La fenêtre contextuelle apparaît parce que votre appel AJAX renvoie une réponse d'erreur et frappe 'alert (ts.responseText)'. –

+0

Tetsuya, en fait, il appelle l'api sans problèmes quand j'utilise pdf ou jpg, mais pour mp4 je reçois cette erreur –

Répondre

0

Dans ce cas, je pouvais voir que les fichiers que je voulais télécharger avaient une longueur supérieure à 4 Mo, ce que je devais faire est de changer le web.config pour permettre les demandes d'API.

S'il vous plaît, reportez-vous à cette réponse: Dealing with large files in asp.Net API