Usunąć nagłówek "nazwa pliku" z danych formularza

0

Pytanie

Próbuję wysłać zapytanie za pomocą FormData(), muszę włączyć nagłówek "typ zawartości", więc używam duży obiekt binarny dla dodawania wpisów w swoją formę, ale to automatycznie ustawia nazwę pliku w "blob".

const formData = new FormData();

        const obj1 = new Blob([json_data], {type: 'text/plain; encoding=utf-8'});
        formData.append("small_config", obj1);

        const obj2 = new Blob([client], {type: 'text/plain; encoding=utf-8'});
        formData.append("app_type", obj2);

        const obj3 = new Blob([version], {type: 'text/plain; encoding=utf-8'});
        formData.append("product_version", obj3);

        let thumb = await fetch(my_url, {
            method: 'POST',
            mode: 'cors',
            cache: 'no-cache',
            credentials: 'same-origin',
            redirect: 'follow',
            referrerPolicy: 'no-referrer',
            body: formData
        });

Czy istnieje sposób, aby jak ustawić typ zawartości, jak i nie zawierać nazwę pliku?

1

Najlepsza odpowiedź

0

Niemożliwe, aby FormData nie wysyłała nazwa pliku z dodanym dużą binarną obiektem. Jednak możesz wysłać pusty wiersz.

Użyj 3-cia opcja dla FormData.append

formData.append("small_config", obj1, 'My Filename');

Więc w twoim przypadku spróbuj użyć pusty wiersz.

formData.append("small_config", obj1, '');

Z dokumentów Mozilla:

nazwa pliku Opcjonalnie
Nazwa pliku, zgłoszoną przez serwer (USVString), gdy jako drugi parametr jest przekazywany duży obiekt binarny lub plik. Domyślna nazwa pliku dla obiektów Blob - "blob". Domyślna nazwa pliku dla plików obiektów-jest to nazwa pliku.

2021-11-23 18:39:28

To nie działa, nazwę pliku w zapisach FormData nadal jest "wielkim binarną obiektem".
Bartosz Włodarczyk

@BartoszWłodarczyk opublikowałem inne rozwiązanie.
Steven Spungin

to prowadzi do odzyskania danych formularza z nazwą pliku="""
Bartosz Włodarczyk

Więc oto i odpowiedź. Pusta nazwa pliku lub nazwa dużego obiektu binarnego. Możesz spróbować użyć null lub undefined, ale to nie wchodzi w specyfikacji powinna być wiersz.
Steven Spungin

Ponadto, jak pusta nazwa pliku nie "usuwa nazwa pliku"? Twój backend do czynienia z brakiem lub spacją w podobny sposób.
Steven Spungin

Może źle wyjaśniłem problem, potrzebuję, aby zniknął cały nagłówek, a nie tylko wartość. Z jakiegoś powodu łatwa dostępność tytułu sprawia, że żądanie nadaje się do użytku.
Bartosz Włodarczyk

Wtedy nie trzeba korzystać z obiektu FormData. Zaktualizowałem rozwiązanie.
Steven Spungin

Pomyślałem, że to możliwe, bo to naprawdę łatwo zrobić za pomocą biblioteki zapytań w języku python
Bartosz Włodarczyk

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................