سؤال

أحتاج إلى طريقة لتحميل ملفات كبيرة (600 ميجابايت إلى 4 جيجابايت) في موقع asp.net mvc.حاليا أنا أستخدم com.swfupload;إنه يعمل بشكل جيد بما فيه الكفاية، ولكنه يمثل نجاحًا كبيرًا على خادم الويب لأنه يرسله في عملية تحميل واحدة كبيرة، بالإضافة إلى أنني يجب أن أقوم بتعيينه في web.config للسماح بهذا الحجم الكبير من الملف، وهو ما يمثل مخاطرة أمنية كبيرة.في الماضي عندما كنت أقوم بتطوير نماذج الويب كنت أستخدمها تحميل مجاني الذي يقسم الملف إلى أجزاء ويحملها بشكل فردي.أنا أبحث عن طريقة لتحميل الملفات الكبيرة في ملف mvc والتي يتم تحميلها عبر تقطيعها.أي أفكار حول كيف يمكنني القيام بذلك؟

هل كانت مفيدة؟

نصائح أخرى

انتهى بي الأمر باستخدام وحدة تحميل ملفات ASP.NET الخاصة بدارين جونستون للتعامل مع التحميل على جانب الخادم.على الرغم من أنني قمت بتعديله قليلاً حتى يتمكن من أخذ دليل إرشادي في سلسلة الاستعلام بحيث يحفظ الملف المؤقت بهذا الاسم.

لقد كان أمرًا رائعًا لأنه قام بحفظ الملف عند وصوله إلى الخادم، وقام بتجريد الملف من البيانات المنشورة ثم إرساله إلى الإجراء الذي تم تحديده على وحدة التحكم.

مثال من وجهة نظري:

<input id="FileGUID" name="FileGUID" type="hidden" value="f632c00b-9b66-4716-8075-79df63b780fb" />
    <input type="file" id="FileUpload1" name="fileUpload1" />

    <script type="text/javascript">
        var UploadUrl = '/Video/AsyncUpload?FileGUID=f632c00b-9b66-4716-8075-79df63b780fb';
        $(function() {
            $("#FileUpload1").makeAsyncUploader({
                upload_url: UploadUrl,
                flash_url: '/Content/Flash/swfupload.swf',
                button_image_url: '/Content/Images/blank-button.png',
                button_text: '<font face="Helvetica, Arial" size="13pt" color="#ffffff">Upload File</font>',
                disableDuringUpload: 'input[type="submit"]',
                file_size_limit: '8024 MB',
                button_text_top_padding: 2
            });
        });
    </script>

ثم في إجراء الحفظ الفعلي لهذه الصفحة، أبحث عن ملف حيث كان إجراء asyncupload سيحفظ الملف استنادًا إلى FileGUID

هل يمكنك أن تفعل شيئًا مشابهًا لما هو موضح في هذا الرابط؟لا أفهم سبب عدم نجاح ذلك في ASP.NET MVC.

يمكن العثور على مثال لتنفيذ SignalR هنا.

يتضمن هذا أيضًا وظيفة العمل مع HttpContext.Request.GetBufferlessInputStream()، والتي تسمح لك ببدء العمل مع بيانات المنشور قبل تحميلها بالكامل.

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