作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
一、总结
基于在 PrimeNG 的 FileUpload component 中选择的文件,我想中止文件上传到后端服务器的特定文件名模式。 Angular 6.0.7,PrimeNG 6.0.2。
2. 第一种方法
2.1. HTML部分
<p-fileUpload #fileUploader name="file" url="{{uploadUrl}}" accept=".jpeg,jpg"
auto="auto" mode="basic" chooseLabel=„Upload file“
(onBeforeUpload)="fileUploadOnBeforeUpload($event, fileUploader)">
</p-fileUpload>
fileUploadOnBeforeUpload(event) {
if (condition) {
event.xhr.abort();
}
}
fileUploadOnBeforeUpload(event, fileUploader: FileUpload) {
if (condition) {
for (let file of fileUploader.files) {
const index = fileUploader.files.indexOf(file);
fileUploader.remove(event, index);
}
}
}
Failed to load resource: the server responded with a status of 400 ()
.
最佳答案
event.xhr.abort();
用于中止发送的请求。所以它不会在 onBeforeUpload 甚至 onBeforeSend 中工作。就是这样docs说:
The XMLHttpRequest.abort() method aborts the request if it has already been sent.
<p-fileUpload #fileUpload customUpload = "true" (uploadHandler)="handleUpload($event)">
handleUpload(event: any) {
// Do whatever you want here
if(condition) {
// Good to go!
let formData = new FormData();
for (let file of event.files) {
formData.append('file', file, file.name);
}
this.sendFile(formData).toPromise().then((result: any) => {
if(result.status == 200) { // Success
// Your code: display a message, update list of files, etc.
}
});
}}
sendFile(formData) {
// http is HttpClient. You can override it and add required authentication headers, etc.
return this.http.post(this.HierarchyFileUploadUrl, formData);
}
关于angular - 如何在 PrimeNG 的 FileUpload 组件中中止文件上传?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53218727/
我是一名优秀的程序员,十分优秀!