Задать вопрос
PAJCH
@PAJCH

Кто работал с модулем multiparty?

Привет, у меня возникла проблема, например я загружаю несколько файлов сразу же
$('#form').on('change', function (e) {
	e.preventDefault()
	var data = new FormData();

	$.each(e.target.files, function (i, file) {
		console.log(file)
		 data.append('photo' + i, file)
	})

  console.log(data)
	$.ajax({
		type: "POST",
		url: "/upload",
		data: data,
		processData: false,
		contentType: false,
		cache: false,
		success: function (data) {
			console.log(data)
		},
		error: function (error) {
			console.log(error)
		}
	})
})


На сервере я их загружаю с multiparty размер файлов я узнаю с помощью свойстваpart.byteCount,
а он берет этот размер из content-length а в нем хранятся суммарная длина файлов, а как узнать длину каждого файла?
  • Вопрос задан
  • 226 просмотров
Подписаться 1 Оценить 2 комментария
Решения вопроса 1
@j_mart
В обработчике события 'part' (part) эта информация недоступна.
Она доступна или в обработчике 'file' (name, file)
form.on('file', function(name, file) {
  console.log('File name: ' + name);
  console.log('File size: ' + file.size);
});
/*
name - the field name for this file
file - an object with these properties:
  fieldName - same as name - the field name for this file
  originalFilename - the filename that the user reports for the file
  path - the absolute path of the uploaded file on disk
  headers - the HTTP headers that were sent along with this file
  size - size of the file in bytes 
*/

или в дефолтном form.parse(request, [cb])
form.parse(req, function (err, fields, files) {
    for (var name in files) {
        console.log('got file named ' + name + ' with size = ' + files[name]['size']);
    }

    console.log('Upload completed!');
    res.setHeader('text/plain');
    res.end('Received ' + files.length + ' files');
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы