上传大文件在windows上不起作用?

yiytaume  于 2023-02-10  发布在  Windows
关注(0)|答案(2)|浏览(146)

我试图上传大文件(让我们考虑人类基因组的tar文件,最小2.5gb)使用Angular 。如果我上传它从Linux(在任何浏览器, chrome 或火狐)它是工作,但同样的文件上传不工作的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 .我不知道,我在哪里犯了错误..?

hgb9j2n6

hgb9j2n61#

检查(在你的后端设置上)一些叫做maxRequestSize或maxRequestLength的参数。如果我们知道你使用的是什么样的后端,这会更容易。如果是DOT NET,它会是这样的:

<httpRuntime maxRequestLength="xxx" />

根据您的需要设置它

nnvyjq4y

nnvyjq4y2#

如果您使用IIS托管您的应用程序,则默认上传文件大小为4MB。要增加它,请在您的web.config中使用以下部分。

***注:***maxAllowedContentLengthbytes为单位进行测量,而maxRequestLengthkilobytes为单位进行测量,这就是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" />

相关问题