سؤال

يتم حاليًا استخدام System.Web.UI.WebControls.FileUpload المغلف في عنصر التحكم الخاص بنا.

لدينا تراخيص لTelerik.أردت أن أعرف إذا كان لدى أي شخص خبرة في ذلك أو يمكنه اقتراح تجربة أفضل؟

بعض المعايير التي يجب قياسها

  • تصديق
  • الأداء
  • ملفات متعددة
  • الموقع (تصفح صعب)
  • حماية
هل كانت مفيدة؟

المحلول

شخصيًا، إذا كان لديك أدوات التحكم في Telerik، فسأجربها.لقد وجدت أنها مفيدة للغاية، وتجربة المستخدم جيدة.التحكم في التحميل الخاص بهم جميل جدًا.

نصائح أخرى

لقد نشرت للتو عن هذا في سؤال آخر, ، ولكن إذا استخدمت عنصر تحكم ActiveX هذا، فستتمكن من معالجة الصور بسرعة وكفاءة.سيقوم المكون بالفعل بتغيير حجم الصور الموجودة على جهاز العميل قبل إرسالها.يؤدي هذا إلى تقليل عرض النطاق الترددي غير الضروري ونقل صور متعددة في وقت واحد.

قمنا بتوسيع FileUploadControl لإضافة بعض التحقق من الصحة.لقد كتبنا أيضًا عنصر التحكم الخاص بنا والذي يسمح بتحميل ملفات متعددة مرة واحدة.نقوم حاليا بتقييم كليهما.نأمل أن نقرر واحدًا، فأنا أكره أن يكون لدي عنصرين مختلفين للتحكم في التحميل للحفاظ عليهما.

تحقق من دين بريتل تحميل أنيق.إنه في الأساس HttpHandler مخصص يقوم بدفق الملفات إلى القرص مع الكثير من قابلية التكوين الإضافية.إنه مفتوح المصدر ويعتبر Dean نجمًا مطلقًا في دعم مستخدميه.

تحقق من هذا:

أتش تي أم أل-5-رافع

قم بسحب وإسقاط ملفات متعددة على صفحة الويب الخاصة بك!

الرابط لا يعمل دائما لذا ها هو مرة أخرى: http://www.igloolab.com/jquery-html5-uploader/

.

مراقب:(تم التعديل من الكود الأصلي الخاص بي، وآمل ألا أكون قد نسيت شيئًا ما، لكنه واضح جدًا)

     <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

هذا هو العرض (لا تنسَ الروابط إلى css و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>

و 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;
}

يمكنك تجربة حل يعتمد على الفلاش يسمح لك بعرض أي نص أو مربعات نص أو أزرار أو أي شيء آخر كجزء من التحكم في تحميل الملف الخاص بك.عادةً ما تضع هذه الحلول فيلم فلاش 1×1 على الصفحة والذي يعمل كجسر بين جافا سكريبت وفلاش بحيث يمكن لجافا سكريبت استدعاء مربع تحميل ملف الفلاش ديناميكيًا.

في مشروع حديث، استخدمت تحميل فانسي للقيام بذلك بالضبط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top