1. Во -первых, реализуйте загрузку больших файлов . Если это несколько мегабайт или десятки мегабайт, используйте базовый метод загрузки, но если это большая загрузка файлов, лучше всего использовать загрузку Shard. Здесь я в основном использую клиент для чтения данных о шарде в сегмент сервера, а затем сохраняю их. После того, как сегмент сервера считывается, данные о шарде объединяются.
2. Передний код заключается в следующем:
< %@ Page language = "c#" autoeventwireup = "true" codebehind = "uploadtest2.aspx.cs" inherits = "html5uploadtest.uploadtest2" %> <html lang = "zh-cn"> <head> <meta charset = "utf-8"> withlet uptureting htmling htmling htmling htmling htmling htmling htmling htmling htmling htmling htmling htmling htmling htmling htmling htmly src = "scripts/jquery-1.8.2.js"> </script> <link href = "bootstrap-progressbar/bootstrap-progressbar-3.3.4.css" rel = "stylesship"/> <script src = "bootstrap-progressbar/bootstrap-progressbar.js" href = "jqueryui/jquery-ui.css" rel = "styleSheet"/> <script src = "jqueryui/jquery-ui.js"> </script>-%> <script> function uploadfile () {$ ("#upload"). $ ("#file") [0] .files [0], // file object filenum = $ ("#file") [0] .files [0] .length, name = file.name, // name file size = file.size, // общий размер успешно = 0; var shardsize = 2 * 1024 * 1024, // shardcount = math.ceil (size /shardize); // Общее количество срезов $ ('. Progress .progress-bar'). Attr ('data-transitiongoal', 0) .progressbar ({display_text: 'fill'}); для (var i = 0; i <shardcount; ++ i) {// Рассчитайте начало и конечные позиции каждого slice var start = i * shardize, end) end/shardize), щиты/shardize), щиты/shardize) entzize). Форма, FormData - это новая форма VAR, добавленная в HTML5. = new FormData (); form.append ("data", file.slice (start, end)); // метод среза используется для вырезания части файла form.append ("name", name); form.append («total», shardcount); // общее количество срезов form.append ("index", i + 1); // Текущее количество срезов равно // ajax подчиняется $ .ajax ({url: «upload.ashx», тип: «post», data: form, async: true, // async processdata: false, // очень важно сказать jQuery не обрабатывать форму Centtype: false, // это очень важно, чтобы указать в соответствии с ложным, чтобы формировать правильные контенты. {++ преуспеть; $ ("#output"). Text (effuce + " /" + shardcount); var penest = ((affuce / shardcount) .tofixed (2)) * 100; UpdateProgress (процент); if (effect == shardcount) {$ ("#upload"). removeattr ("отключен"); {var progressbarwidth = процент * $ element.width ()/100; $ element.find ('div'). Animate ({width: progressbarwidth}, 500) .html (процент + "%");} // $ (document) .ready (function () {// $ ('. }); //}); функция UpdateProgress (процент) {$ ('. Progress .progress-bar'). attr ('data-transitiongoal', процент) .progressbar ({display_text: 'fill'});} </script> </head> <body> <input 'file "yd =" file "/> <кнопка =" up> <body> <input type = "id ="/> </uppload " onclick = "uploadfile ();"> upload </button> <span id = "output" style = "font-size: 12px"> ожидание </span> <div> <div id = "progressbar" role = "progressbar" data-transegoal = ""> </div> </div> </body> </html>3. Общие процедуры обработки фоновой обработки следующие:
Использование System; с использованием system.collections.generic; с использованием system.io; с использованием system.linq; с использованием system.web; kingspace html5uploadtest {/// <summary> /// Суммирическое описание для загрузки //// </summary> public class upload: ihttphandler {public voidRequest (httpcontextextextextemple.consesons. "Text/plain"; try {// Выберите параметры из запроса, обратите внимание, что загруженный файл - это строка в request.files name = context.request ["name"]; int total = convert.toint32 (context.request ["total"]); int index = convert.toint32 (context.request ["index"]; var data. на диск String dir = context.request.mappath ("~/temp"); string file = path.combine (dir, name + "_" + index); data.saveas (файл); // Если это уже последний осколок, комбинируйте //, вы также можете использовать другие методы, такие как прямое письмо в соответствующее местоположение в финальном файле. Тоталь) {file = path.combine (dir, name); // byte [] bytes = null; Использование (fileStream fs = new FileStream (file, fileMode.openorCreate)) {for (int i = 1; i <= otal; ++ i) {string part = path.combine (dir, name + "_" + i); // bytes = system.io.file.readlystes (part); null; system.io.file.delete (part); fs.close ();}}}}} catch (exception) {throw;} // Возврат, является ли она успешной, упрощенная обработка выполняется здесь // return json (new {erry = 0});} public bool можно найти {get {return forse;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}};4. Конечно, фон также нуждается в некоторой обработке исключений или отключении электроэнергии, а также для продолжения передачи. Полем Полем
Выше приведено пример кода начальной загрузки, который я представил вам. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!