2017-05-02 1 views
0

Je suis perdu ... ng-file-upload fonctionne parfaitement tant que le nombre d'octets est égal ou inférieur à 4193813 avec un nom de fichier de 11 caractères. Si la taille du téléchargement augmente d'un octet, l'en-tête le renvoie au serveur mais pas au fichier.ng-file-upload taille du fichier au-dessus de 4.5mb

Mon code est identique du côté client à l'exemple de Danial. Sur le backend, je cours West-Wind.com Web Connection, un serveur web Microsoft Visual Foxpro. En regardant avec Fiddler, mes deux tests de travail et brisés semblent identiques à l'exception du nombre d'octets de la longueur du contenu.

J'ai regardé IIS7 Request Filtering et voir la taille par défaut de 30mb est définie. Également essayé de le régler à 16mg et cela n'a fait aucune différence. Je me demande si c'est une restriction de taille de morceau et/ou je ne gère pas correctement quelque chose sur le backend dans l'en-tête ... mais c'est juste une supposition à ce stade. Toutes les pensées sur la prochaine étape seraient grandement appréciées.

... sur la base du feedback, voici un extrait de mon code: (en supposant pour l'instant, plusieurs fichiers pas les fichiers possibles [0] ci-dessous)

Upload.upload({ 
    url: 'postback794.wcsx', 
    fields: oFileFlds, 
    file: files[0] 
}).then(function (response) { 
    // the postback now includes valided uploads 
    console.log('upload complete'); 
}, function (response) { 
    //error 
    console.log('Error status:' + response.status); 
}, function (evt) { 
    var progressPercentage = parseInt(100.0 * evt.loaded/evt.total); 
    console.log('progress: ' + progressPercentage + '% ' + evt.config.file.name); 
    _this.DisplayMessage = 'progress: ' + progressPercentage + '% ' + evt.config.file.name; 
}); 

Voici le code HTML:

<button class="btn btn-primary pull-left" 
    multiple 
    ngf-select 
    accept="text/plain, image/*, application/pdf, application/msword" 
    ng-model="VendorsController.AddlDocsFile" 
    title="Click here to upload one or more documents."> 
Upload Document(s) 
    <i class="fa fa-upload" style="font-size:14px; margin:3px;"></i> 
</button> 

Sur le serveur:

DO WHILE !FEOF(lhFile) 
    lcCommandLine = lcCommandLine + FREAD(lhFile,16484) 
    ENDDO 

Je vais supposer que le code VFP est unfamil iar, le FREAD est une commande de bas niveau qui lit un fichier spécifié par un handle (lhFile) pour un certain nombre d'octets (16484 dans ce cas). Lorsque le marqueur de fin de fichier est atteint, le FREAD se termine et la boucle DO est terminée. lcCommandLine devrait alors avoir le hit entier prêt à être analysé.

Dans le cas d'un travail de chargement de fichiers ng, je peux voir tout le téléchargement de test. Ce n'est pas le cas lorsque le nombre d'octets est supérieur au point de rupture, la valeur lcCommandLine est coupée sans aucune des données de téléchargement de fichier (HTTP_CONTENT_LENGTH = 906).

+0

Lorsque vous posez une question sur un problème causé par votre code, vous obtiendrez de bien meilleures réponses si vous fournissez du code que les gens peuvent utiliser pour reproduire le problème. Voir [Comment créer un exemple minimal, complet et vérifiable] (http://stackoverflow.com/help/mcve) – georgeawg

+0

Merci d'avoir signalé que vous deviez voir du code pour vous aider, des suggestions sur ce qui pourrait ne pas être correct? –

+0

Une suggestion consiste à essayer de télécharger le fichier sans utiliser la bibliothèque 'ng-file-load' pour voir si le problème de capacité est causé par la bibliothèque. Voir [télécharger le fichier avec 'ng-model' et' $ http'] (http://stackoverflow.com/a/43778329/5535245). – georgeawg

Répondre

0

Problème lié à IIS lors de l'installation d'ASP.NET.

Deux paramètres doivent être définis dans le fichier web.config. Ils contrôlent la taille maximale du fichier. Les paramètres sont les suivants: (. Ce premier paramètre qui est dans la configuration system.webServer peut être fait via l'interface utilisateur IIS sous Filtrage des demandes)

<configuration> 
<system.webServer> 
    <security> 
     <requestFiltering> 
     <requestLimits maxAllowedContentLength="500000000" /> 
     </requestFiltering> 
    </security> 
<system.webServer> 
</configuration> 

C'est le deuxième qui est aussi dans la configuration sous system.web:

<configuration> 
<system.web> 
    <httpRuntime maxRequestLength="500000000" executionTimeout="120" /> 
</system.web> 
<configuration> 

Merci à Rick Strahl pour vos directions d'où aller chercher ...!