我试图上传大文件(让我们考虑人类基因组的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
.我不知道,我在哪里犯了错误..?
2条答案
按热度按时间hgb9j2n61#
检查(在你的后端设置上)一些叫做maxRequestSize或maxRequestLength的参数。如果我们知道你使用的是什么样的后端,这会更容易。如果是DOT NET,它会是这样的:
根据您的需要设置它
nnvyjq4y2#
如果您使用
IIS
托管您的应用程序,则默认上传文件大小为4MB
。要增加它,请在您的web.config
中使用以下部分。***注:***
maxAllowedContentLength
以bytes
为单位进行测量,而maxRequestLength
以kilobytes
为单位进行测量,这就是config
示例中的值不同的原因: