Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.05.2020, 13:25
Кандидат Javascript-наук
Отправить личное сообщение для Maxman Посмотреть профиль Найти все сообщения от Maxman
 
Регистрация: 18.06.2010
Сообщений: 122

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, в браузере если посмотреть - тоже отправляются файлы, только не доходит... Кто-нить в курсе почему такое может быть?
Ответить с цитированием
  #2 (permalink)  
Старый 07.05.2020, 14:06
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,354

используйте https://github.com/expressjs/multer
он позволяет валидировать файлы загрузки
складывать в нужные папки
Ответить с цитированием
  #3 (permalink)  
Старый 07.05.2020, 19:14
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,196

Maxman,
Предполагаю, что проблема в разных версиях node.js. В докер контейнере поднимается 14, в которой есть проблема с обработкой файлов для используемого middleware https://github.com/pillarjs/multiparty/issues/226
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прошу раскритиковать наслойку работы с MySql. Alasdair Node.JS 4 21.11.2015 19:06
Дебаг обьекта Form Data Velidan Общие вопросы Javascript 5 29.07.2015 15:22
Упростить код Nifler Общие вопросы Javascript 4 12.06.2015 17:29
вопрос по видимости переменных. yiooxir Angular.js 3 31.10.2013 10:37
Как отправить данные в Form Data вместо Request Payload? Shitbox2 Angular.js 2 26.05.2013 21:40