загрузка части видео + C # комбинированного бэкенд

<! DOCTYPE HTML > 
< HTML Ланг = "EN" > 
< голова > 
    < мета кодировка = "UTF-8" > 
    < название > Документ </ название > 
</ голова > 
< тело >   
    <! - 2.创建页面元素- >   
    < DIV ID = "загрузить" >   
        < ввод ID = "файл" тип = "файл" имя = "файл"  /> 
        <типа "кнопка" = >提交2 </ кнопка > 
    </ DIV >   
    < сценарий типа = "текст / JavaScript" SRC = "JS / JQuery-3.4.1.min.js" > </ скрипт > 
    < сценарий типа =» текст / JavaScript» SRC = "JS / JQuery-form.js" > </ скрипт > 
    < сценарий типа = "текст / JavaScript" > 
        $ ( функция () { 
            $ ( " #btnButton " ).нажмите ( функция () { 
                SendRequest ();
                вернуться  к ложным ; 
            }); 
        }) 
        
        уаг BYTES_PER_CHUNK = 1.  *  1024  *  1024 ; // . для каждого размера кусок файла как 1Мб 
        Var ломтиков;
         Var totalSlices; 

        // отправить запрос 
        функции SendRequest () {
             уаг BLOB = document.getElementById ( " Файл " ) .files [ 0 ];
             вар Start =  0 ;
             вар End;
            вар индекс =  0 ; 


            // 计算文件切片总数
            ломтиков = Math.ceil (blob.size / BYTES_PER_CHUNK); 
            totalSlices = ломтики;
            в то время (начало < blob.size) { 
            конец = начать + BYTES_PER_CHUNK;
            если (конец > blob.size) { 
                конец = blob.size; 
            } 
            UploadFile (блоб, индекс, начало, конец); 
            начать = конец; 
            индекс ++ ;
            если (индекс > = totalSlices) 
                расположение = " reboot.htm " ; 
            } 
        } 

        // 上传文件
        функция uploadFile (блоб, индекс, начало, конец) {
             вар XHR;
            вар FD;
            вар кусок;  
            вар sliceIndex = blob.name + индекс; 
            Кусок = blob.slice (начало, конец); // 切割文件
            FD =  новый  FormData ();
            fd.append ( " UpgradeFileName " , порция, sliceIndex);
             вар XHR =  новый новый XMLHttpRequest (); 
            xhr.open ( ' СТОЛБ ' , ' http://192.168.10.134:8080/Training/UploadVideo ' , ложь ); // ложь относится к синхронной загрузке, потому что моя маленькая память сервера, выберите синхронизацию, если стремление к скорости, вы можете выбрать // TŪRE, асинхронная загрузка 
            xhr.send (FD);
             IF ((xhr.status > = 200  && xhr.status <  300 ) || xhr.status ==  304 ) {
                SetTimeout ( "" , 10 ); 
            } Иначе { 
                uploadFile (блоб, индекс, начало, конец); 
            } 
        } 
</ Скрипт > 

</ тело >   
</ HTML >
///  <Summary> 
        /// файл слияния
         ///  </ Summary> 
        ///  <парам имя = "Файлы"> Файлы </ PARAM> 
        ///  <парам имя = "FULLNAME"> путь хранения </ Param> 
        общественных  статические  недействительный FileMerge (список < Строка > файлы, строковые FULLNAME) 
        { 
            IF ((files.Count>! 0 )) 
            { 
                вбрасывание  новый новый Exception ( " список файлов пуст " );
            } 
            Еогеасп ( строка элемент в файлах)
            { 
                Если (! File.Exists (пункт)) 
                { 
                    бросить  новый Exception ( строка .Format ( " 文件{0}不存在" , пункт)); 
                } 
            } 
            Байт [] буфер = новый  байт [ 1024 * 100 ];
            используя (FileStream outStream = новый FileStream (FULLNAME, FileMode.Create)) 
            { 
                INT readedLen = 0 ; 
                FileStream srcStream = NULL ;
                для (Int я = 0 ; г <files.Count; я ++ ) 
                { 
                    srcStream = новый FileStream (файлы [я], FileMode.Open);
                    в то время как ((readedLen = srcStream.Read (буфер, 0 , buffer.Length))> 0 ) 
                    { 
                        outStream.Write (буфер, 0 , readedLen); 
                    } 
                    SrcStream.Close (); 
                } 
            } 
        }

 

рекомендация

отwww.cnblogs.com/Mzg121584668/p/10955166.html