Как показано в документации , вы не настроили никаких целей, например dev
или prod
. Вы только указали options
. Вы хотите
webpack: {
options: {},
dev: require("./config/webpack.dev.js"),
},
Кроме того, использование Webpack с Grunt бесполезно.
Я надеюсь, что Вы знаете, как нормальные загружают. Назовите загрузку/Чтение и обновление файла, когда нажмут кнопку при помощи вызова ajax. Необходимо отправить локальный путь системного файла как вход, и затем ответ должен содержать путь в сервере или ошибке. Обновите ссылку вложения с ответом в случае, при отсутствии ошибок.
Необходимо динамично создать скрытый iframe в DOM и поставить цель формы загрузки к этому iframe., не забывают устанавливать метод формы для POST.
Вы могли сделать и загрузку и поле сообщения, заполняющееся сразу.
необходимо определенно проверить готовые компоненты, делающие это для библиотеки JavaScript по Вашему выбору.
Взгляд ниже отрывка, которые отправляют текстовые данные и присоединенные мультифайлы. Эти content-type='multipart/form-data'
установлен браузером автоматически, имя файла добавляется автоматически также к filename
параметр FormData (и может быть легкое чтение сервером).
async function sendEmail() {
let formData = new FormData();
let msg = { message: emailText.value };
formData.append("email", JSON.stringify(msg));
[...attachment.files].map(
(file,i) => formData.append("file"+i, file)
);
try {
await fetch('your/api/upload/email', { method: "POST", body: formData });
alert("Email was send!");
} catch(e) {
alert("Problem with email sending");
}
}
<textarea id="emailText" placeholder="Type message here"></textarea><br>
<input type="file" id="attachment" multiple /><br><br>
<input type="button" value="Send email" onclick="sendEmail()" />
<br><br><span style="color:red">In this snippet API not exists so exception will be thrown but you can look on your request in:<br> chrome console> network tab</span>