#node.js #reactjs #api #next.js
Вопрос:
Я создал API в узле js для загрузки файлов. С почтальоном все работает нормально.
Я сделал форму для загрузки файлов Excel в Next Js. Я могу видеть выбранные файлы в консоли.
Но я не могу установить файл в formdata. Я получаю пустые данные формы в консоли.
<div>
<input
class="form-control w-25"
multiple={false}
type="file"
id="ExcelFile"
onChange={uploadFile}
required
></input>
{/* </label> */}
<button
type="button"
// disabled={!selectedImage}
class="btn btn-primary "
>
ADD SOLUTION
</button>
</div>
const uploadFile = ({ target: { files } }) => {
console.log(files[0]);
// let data = new formData();
let FilesData = new FormData();
FilesData.append("excel_file", files[0]);
console.log("Files in multipart");
console.log(FilesData);
// data.append("file", files[0]);
};
https://codesandbox.io/embed/next-js-forked-th22n?fontsize=14amp;hidenavigation=1amp;theme=dark
Комментарии:
1. Пожалуйста, добавьте немного кода, чтобы показать, что вы хотите сделать и что происходит.
2. вот
FilesData
идет пустая @AnkushVerma3. не могли бы вы добавить его в какую-нибудь песочницу и поделиться ссылкой ?
4. Вот ссылка
https://codesandbox.io/embed/next-js-forked-th22n?fontsize=14amp;hidenavigation=1amp;theme=dark
@Анкушверма5. Содержимое FormData невидимо в консоли браузера. Вы пытались загрузить его с помощью API
Ответ №1:
Если вы попытаетесь использовать объект console.log FormData
, вы просто получите пустой объект.Вместо этого вы должны вызвать entries
метод для FormData
объекта.
for (const pair of FilesData.entries()){
console.log(pair)
}
Он вернет список arrays
пар ключ-значение.