我在尝试在数组中使用上传器时遇到问题:
我使用“ng-repeat”在表中列出了一组用户。我想添加一个带有按钮的列来为每个人上传一张图片。我目前正在使用ng2-file-upload但将其更改为其他没有问题。
<table>
<thead>
<th>User Id</th>
<th>User Name</th>
<th>View / Upload photo</th>
</thead>
<tbody>
<tr *ngFor="let user of users; let i = index" [attr.data-index]="i">
<td>{{user.id}}</td>
<td>{{user.name}}</td>
<td>
<div *ngIf="user.photo">
<a href="{{user.photo}}>View photo</a>
</div>
<div *ngIf="!user.photo">
<input class="btn" type="file" ng2FileSelect [uploader]="uploader"/>
</div>
</td>
<td>
</tr>
</tbody>
</table>
在组件中,我知道我需要用我的 api 的 URL 声明上传器,以使用以下代码上传文件:
uploader: FileUploader = new FileUploader({url: URL});
this.uploader.onCompleteItem = (item:any, response:any, status:any, headers:any) => {
this.photo = JSON.parse(response).path;
};
但是,此代码不适用于每个用户。
问题是我找不到从每个用户获取上传文件路径的方法,以将其保存在一个变量中,该变量可以让我将其保存到数据库中。
我知道有一个函数可以获取文件名,但我无法获取每个用户照片的值。
你们中有人做过这样的事吗?也许你可以告诉我如何让它工作。
我想我必须为每个用户动态创建上传器,所以每个上传器都有自己的文件路径,但我怎样才能完成呢?或者也许只有一个上传者是可以的,但是当我在 onCompleteItem 函数中时我需要获取用户 ID,以便我可以将文件路径保存到数据库中的当前用户?
感谢您的指导。