Библиотека ng2FileUpload - добавление нескольких formData - PullRequest
0 голосов
/ 03 декабря 2018

Я добавил к коду метода 'uploader.onBeforeUploadItem', как показано ниже:

item.formData['creator'] = {
    id: user.id,
    name: user.name,
    avatar: user.avatar
};
item.formData['content'] = 'value';

И помимо этого я добавляю файл из файла ввода типа:

<form enctype="multipart/form-data">
    <div class="textfield" contenteditable [innerHTML]="content"></div>
    <div *ngIf="scope.imageLoaded" class="image-gallery">
        <div class="image-preview" [ngStyle]="{'background-image' : 'url(' + scope.addImgPath + ')'}"></div>
    </div>
    <button (click)="uploader.uploadAll()" class="btn right grey darken-4 send-message" type="submit">Send
        <i class="material-icons right">send</i>
    </button>
</form>

Проблема заключается вКогда я пытаюсь сослаться на эти значения на бэкэнд-сайте, единственное свойство, которое я могу получить - это файл.Другие данные там не видны (req.body не определено):

router.post('/add', (req, res) => {
    upload(req, res, (err) => {

        let newPost = new Post({
            content: req.body.content,
            creator: req.body.creator,
            post_date: Date.now(),
            rate: 0,
            users_liked: [],
            image: 'http://localhost:3000/uploads/' + req.file.filename
        });

        Post.addPost(newPost);
    });
});

Когда я проверяю запросы на вкладке xhr консоли, я вижу, что единственной отправляющей информацией является файл.Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 03 декабря 2018

Обновите ваш onBeforeUplaodItem обратный вызов следующим образом -

onBeforeUploadItem(item: FileUploader | any) {
    item.formData.push({
        "creator": {
            id: user.id,
            name: user.name,
            avatar: user.avatar
        },
        "content": "value"
    });
}

Вы получите один JSON, используя приведенный выше код.

...