Загрузка больших файлов не работает на windows? - PullRequest
1 голос
/ 23 апреля 2020

Я пытаюсь загрузить большой файл (давайте рассмотрим tar-файл Human Genome, минимум 2,5 ГБ), используя Angular. Если я загружаю его из Linux (в любом браузере, chrome или Firefox), он работает, но загрузка того же файла не работает в windows (даже chrome браузер). Ниже приведен служебный файл,

import { HttpHeaders, HttpClient, HttpParams, HttpEventType } from '@angular/common/http';

@Injectable({
    providedIn: 'root'
})
export class GenomeService {
    baseApiUrl = '###myapiurl###';
    public postGenome = (resrc: string, item: any): Observable<any> => {

        this.headers = this.headers.delete('Content-Type');
        return this._http.post(this.baseApiUrl + resrc + "/", item, {
            headers: this.headers,
            withCredentials: true,
            reportProgress: true,
            observe: 'events'
        }).pipe(
            map((event) => {
                switch (event.type) {
                    case HttpEventType.UploadProgress:
                        const progress = Math.round(100 * event.loaded / event.total);
                        return { status: 'progress', message: progress };
                    case HttpEventType.Response:
                        return event.body;
                    default:
                        return "Error......${event.type}";
                }
            }),
            finalize(() => {
                console.log("done");
            })
        );

    }

}

В сетевой вкладке браузера отображается как net::ERR_CONNECTION_RESET. Я не знаю, где я делаю ошибку ..?

Ответы [ 2 ]

3 голосов
/ 27 апреля 2020

Проверьте (в настройках вашего бэкэнда) некоторый параметр, называемый maxRequestSize или maxRequestLength. Было бы проще, если бы мы знали, какой бэкэнд вы используете. Если это DOT NET, это будет примерно так:

<httpRuntime maxRequestLength="xxx" />

установите его в зависимости от ваших потребностей

1 голос
/ 03 мая 2020

Если вы используете IIS для размещения вашего приложения, то размер файла загрузки по умолчанию, если 4MB. Чтобы увеличить его, используйте этот раздел ниже в web.config.

Примечание: maxAllowedContentLength измеряется в bytes, а maxRequestLength измеряется в kilobytes, поэтому значения отличаются в этом config примере:

<system.webServer>
  <security>
    <requestFiltering>
      <!-- For 50 MB set maxAllowedContentLength="52428800" -->
      <requestLimits maxAllowedContentLength="52428800" /> 
    </requestFiltering>
  </security>
</system.webServer>

 <!--For 50 MB set maxRequestLength="51200"--> 
<httpRuntime targetFramework="4.5" maxRequestLength="51200" executionTimeout="30" /> 

Надеюсь, это поможет.

...