Docker и multipart form data
Всем привет! Столкнулся с такой проблемой:
На клиенте примерно следующее: (отправляются данные из формы) let formData = new FormData(); formData.append('xmlFile', $("#xml").files[0]); formData.append('csvFile', $("#csv").files[0]); formData.append('xml', "sipp_reg_UAC_v02.xml"); formData.append('csv', "auth_users.csv"); formData.append("cpu", $("#cpu").value); formData.append("server", $("#server").value); formData.append("port", $("#port").value); axios.post(server + "/sipp/start", /*{ xml: 'sipp_reg_UAC_v02.xml', csv: "auth_users.csv", cpu: $("#cpu").value, server: $("#server").value, port: $("#port").value, },*/ formData, { headers: { 'Content-Type': 'multipart/form-data' } }).then(response => { ... }); На сервере юзаю multipart middleware для доступа к req.files (Express) var multipart = require('connect-multiparty'); var multipartMiddleware = multipart(); ... router.post('/sipp/start', multipartMiddleware, Process.start()); Когда запускаю без докера - всё идеально, когда в нём - req.files и req.body почему-то пустые, пустой массив, при этом миддлвара сама работает, потому что массив доступен, иначе он был бы undefined, в браузере если посмотреть - тоже отправляются файлы, только не доходит... Кто-нить в курсе почему такое может быть? |
используйте https://github.com/expressjs/multer
он позволяет валидировать файлы загрузки складывать в нужные папки |
Maxman,
Предполагаю, что проблема в разных версиях node.js. В докер контейнере поднимается 14, в которой есть проблема с обработкой файлов для используемого middleware https://github.com/pillarjs/multiparty/issues/226 |
Часовой пояс GMT +3, время: 22:18. |