Frage

Zur Zeit System.Web.UI.WebControls.FileUpload in unserer eigenen Kontrolle eingewickelt werden.

Wir haben Lizenzen für Telerik. Ich wollte wissen, ob jemand Erfahrung damit hatte oder könnte einen besseren vorschlagen?

Einige Kriterien, die von

gemessen werden
  • Validierung
  • peformance
  • mehr Dateien
  • Lokalisierung ( Browse ist schwer)
  • Sicherheit
War es hilfreich?

Lösung

Persönlich, wenn Sie die Telerik Kontrollen haben würde ich ihnen eine Chance geben. Ich habe festgestellt, dass sie sehr nützlich sind, und die User Experience ist gut. Ihre Upload-Steuerung ist recht schön.

Andere Tipps

Ich habe gerade dieses in einer anderen Frage geschrieben, aber wenn Sie verwenden dieses ActiveX-Steuerelement können Sie Bilder schnell und effizient verarbeiten. Die Komponente wird die Größe tatsächlich die Bilder auf dem Client-Rechner vor ihnen senden. Dies reduziert unnötige Bandbreite und überträgt mehrere Bilder auf einmal.

Wir erweiterten die FileUploadControl einige Validierung hinzuzufügen. Wir schrieben auch unsere eigene Steuerung, die mehrere Dateien auf einmal hochgeladen werden können. Wir prüfen derzeit beide. Hoffentlich entscheiden wir auf der einen, ich würde es hassen, 2 verschiedene Upload-Kontrollen haben zu erhalten.

Schauen Sie sich Dean Brettle NeatUpload . Es ist im Grunde ein benutzerdefinierter Httphandler, die Dateien auf der Festplatte mit vielen zusätzlichen Konfigurierbarkeit Bächen. Es ist Open-Source und Dean ist ein absoluter Star für seine Nutzer zu unterstützen.

diese ein Check out:

Html-5 -Uploader

Drag-and-Drop mehrere Dateien auf Ihrer Webseite!

Link funktioniert nicht immer so ist es hier wieder: http: //www.igloolab .com / jquery-html5-Uploader /

.

Controller: (von meinem ursprünglichen Code geändert, hofft ich vergesse nicht etwas, aber es ist ziemlich klar)

     <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

Dies ist die Ansicht (vergessen Sie nicht, Links zu CSS und 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>

Und meine 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;
}

Sie könnten versuchen, eine Flash-basierte Lösung, die Sie, was Text, Textfelder, Schaltflächen oder irgendetwas anderes als Teil Ihres eigenen Datei-Upload-Steuerelement angezeigt werden kann. Diese Lösungen typischerweise einen 1x1 Flash-Film setzen auf der Seite, die als Brücke wirkt zwischen JavaScript und Flash, so dass Javascript dynamisch Flash die Box Datei-Upload aufrufen können.

In einem aktuellen Projekt, habe ich FancyUpload zu tun dass genau.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top