Question

En train d'utiliser System.Web.UI.WebControls.FileUpload dans notre propre contrôle.

Nous avons des licences pour Telerik. Je voulais savoir si quelqu'un en connaissait l'expérience ou pouvait en suggérer une meilleure?

Certains critères à mesurer par

  • validation
  • performance
  • plusieurs fichiers
  • localisation ( parcourir est difficile)
  • sécurité
Était-ce utile?

La solution

Personnellement, si vous avez les commandes Telerik, je leur donnerais une chance. J'ai trouvé qu'ils sont très utiles et que l'expérience utilisateur est bonne. Leur contrôle de téléchargement est plutôt agréable.

Autres conseils

Je viens de publier un article sur cette dans une autre question , mais si vous utilisez Grâce à ce contrôle ActiveX, vous pourrez traiter les images rapidement et efficacement. Le composant redimensionnera réellement les images sur l'ordinateur client avant de les envoyer. Cela réduit la bande passante inutile et transfère plusieurs images à la fois.

Nous avons étendu FileUploadControl pour ajouter une validation. Nous avons également écrit notre propre contrôle qui permet de télécharger plusieurs fichiers à la fois. Nous évaluons actuellement les deux. J'espère que nous en choisirons un, je détesterais avoir deux contrôles de chargement différents à maintenir.

Découvrez NeatUpload de Dean Brettle. Il s'agit essentiellement d'un gestionnaire HttpHandler personnalisé qui diffuse des fichiers sur un disque avec une charge de configuration supplémentaire. Il est open source et Dean est une star absolue pour aider ses utilisateurs.

Découvrez celui-ci:

Html-5 -Uploader

Glissez-déposez plusieurs fichiers sur votre page Web!

Le lien ne fonctionne pas toujours, il est donc de nouveau ici: http: //www.igloolab .com / jquery-html5-uploader /

.

Contrôleur: (modifié par rapport à mon code d'origine, j'espère que je n'ai pas oublié quelque chose, mais c'est assez clair)

     <HttpPost()> _
     Public Function Upload(uploadedFile As System.Web.HttpPostedFileBase) As ActionResult
        If uploadedFile IsNot Nothing Then 
            If uploadedFile.ContentLength > 0 Then

               Dim mimeType As String = Nothing 
                'Upload
                Dim PathFileName As String =   System.IO.Path.GetFileName(uploadedFile.FileName)

                 Dim path =  System.IO.Path.Combine(Server.MapPath("~/App_Data/Uploads"), PathFileName)

                If Not System.IO.Directory.Exists(Path) Then
                    System.IO.Directory.CreateDirectory(Path)
                End If

                Dim firstLoop As Boolean = True
                uploadedFile.SaveAs(path)                  
             Next
        End If
        Return Nothing
    End Function

Ceci est la vue (n'oubliez pas les liens vers css et js;))

     <h1>
            @SharedStrings.Upload</h1>
        <h2>
            @SharedStrings.UploadInformation</h2>
        <div id="dropbox">
        </div>
        <div id="upload">
        </div>
        <script type="text/javascript">

            $(function () {

                var fileTemplate = "<div id=\"{{id}}\">"; fileTemplate += "<div class=\"progressbar\"></div>"; fileTemplate += "<div class=\"preview\"></div>"; fileTemplate += "<div class=\"filename\">{{filename}}</div>"; fileTemplate += "</div>"; function slugify(text) { text = text.replace(/[^-a-zA-Z0-9,&\s]+/ig, ''); text = text.replace(/-/gi, "_"); text = text.replace(/\s/gi, "-"); return text; }
                $("#dropbox").html5Uploader({ onClientLoadStart: function (e, file) {
                    var upload = $("#upload"); if (upload.is(":hidden")) { upload.show(); }
                    upload.append(fileTemplate.replace(/{{id}}/g, slugify(file.name)).replace(/{{filename}}/g, file.name));
                }, onClientLoad: function (e, file) { /*$("#" + slugify(file.name)).find(".preview").append("<img src=\"" + e.target.result + "\" alt=\"\">");*/ }, onServerLoadStart: function (e, file) { $("#" + slugify(file.name)).find(".progressbar").progressbar({ value: 0 }); }, onServerProgress: function (e, file) { if (e.lengthComputable) { var percentComplete = (e.loaded / e.total) * 100; $("#" + slugify(file.name)).find(".progressbar").progressbar({ value: percentComplete }); } }, onServerLoad: function (e, file) { $("#" + slugify(file.name)).find(".progressbar").progressbar({ value: 100 }); } 
                }); 
            });
        </script>

Et mes css

 /*html 5 uploader*/
#dropbox 
{
/*picture where people would drag-drop their files to*/
 background-image:url(../Images/UploadToMedia.png);
 height:128px;
 margin-bottom:40px;
 margin-left:auto;
 margin-right:auto;
 background-repeat:no-repeat;
 margin-top:0;
 width:128px;
}

Vous pouvez essayer une solution Flash qui vous permet d’afficher du texte, des zones de texte, des boutons ou tout autre élément dans le cadre de votre propre contrôle de téléchargement de fichier. Ces solutions placent généralement une animation flash 1x1 sur la page qui sert de pont entre javascript et flash, de telle sorte que javascript puisse appeler dynamiquement la boîte de téléchargement de fichier de Flash.

Dans un projet récent, j'ai utilisé FancyUpload à faire exactement ça.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top