![](/img/trans.png)
[英]How can i change 'ng2-file-upload' default behavior to change the name attribute of the file input to 'file'
[英]ng2-file-upload: How to change the form-data name for file upload
我目前正在使用此代碼上傳文件(Angular 2+):
upload() {
let inputEl: HTMLInputElement = this.inputEl.nativeElement;
let fileCount: number = inputEl.files.length;
let formData = new FormData();
if (fileCount > 0) { // a file was selected
for (let i = 0; i < fileCount; i++) {
formData.append('files', inputEl.files.item(i));
}
this.http.post(mySecretUrl, formData, {observe: 'response'}).subscribe(err => this.handleError(err), resp => {
console.log(resp);
});
}
}
使用 html:
<input #fileInput type="file" [multiple]="true" id="file-upload" size="60">
這工作正常,但我想使用 ng2-file-upload 因為該包附帶的所有額外的好東西。
當我輸入 ng2-file-upload 的代碼並嘗試上傳時,出現 500 錯誤。 我 100% 確定問題是鍵名“文件”,您將在舊代碼的這一行中找到它:
formData.append('files', inputEl.files.item(i));
使用 ng2-file-upload 時,如何將表單數據鍵名稱添加/更改為“文件”?
這是我的 ng2-file-upload 代碼:
function readBase64(file): Promise<any> {
var reader = new FileReader();
var future = new Promise((resolve, reject) => {
reader.addEventListener("load", function () {
resolve(reader.result);
}, false);
reader.addEventListener("error", function (event) {
reject(event);
}, false);
reader.readAsDataURL(file);
});
return future;
}
const URL = 'mySecretUrl';
private uploader:FileUploader = new FileUploader({
url: URL,
disableMultipart:true
});
public hasBaseDropZoneOver:boolean = false;
fileObject: any;
public fileOverBase(e:any):void {
this.hasBaseDropZoneOver = e;
}
public onFileSelected(event: EventEmitter<File[]>) {
const file: File = event[0];
console.log(file);
readBase64(file)
.then(function(data) {
console.log(data);
})
}
和 html:
<input type="file" ng2FileSelect [uploader]="uploader" multiple (onFileSelected)="onFileSelected($event)" />
編輯:
我想我的問題的答案是:
public uploader: FileUploader = new FileUploader({
...
itemAlias: 'files'
...
})
...但是當我嘗試上傳時,我仍然收到 500(內部服務器錯誤)...
如果服務器端出現問題,通常會出現500錯誤。 嘗試查看您的 API 端點是否配置正確。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.