У меня нет формы для публикации данных
Почему бы и нет? Как показано в документации здесь , вам нужно создать базовую форму, такую как:
<form action="/file-upload"
class="dropzone"
id="my-awesome-dropzone">
<input type="file" name="file" />
</form>
В случае, если вы создаете Dropzone программно , это уже должно присутствовать.
Имея это, отправка файлов через Ajax проста, так как все, что вам нужно сделать, это:
//create a FormData Object
//that will care about all
//the mimetypes etc
const fd = new FormData(document.getElementById('my-awesome-dropzone'));
fetch(<url>, {
method: 'POST',
body: fd
}).then(function (response) {
//...
});
как показано здесь . Невозможно использовать <form>
, так как у вас нет <input type="file" />
, чтобы дать пользователю возможность выбирать файлы. Невозможно использовать преимущества FormData
, но поскольку это сложно и подвержено ошибкам, был введен API FormData .
Тем не менее, все, что вам нужно сделать, это добавить прослушиватель (и) событий к объекту dropzone и сделать то, что нужно сделать.
Самая простая форма для выполнения React Integratio - это использование componentDidMount()
и componentWillUnmount()
методов жизненного цикла для создания и уничтожения объекта dropzone. Необходимую форму можно создать в методе render()
или, если используется программно, с обратным вызовом ref
.