Странная проблема с модулем express-fileupload, сохраняющим поврежденные файлы изображений на моем жестком диске - PullRequest
0 голосов
/ 16 февраля 2019

Я настраиваю базу данных для веб-сайта, где мне нужно загружать сообщения через HTML-форму, которая затем передается на маршрут, чтобы поместить поля формы в структуру данных схемы.Я использую экспресс-файл загрузки для достижения этой цели.Файлы, которые я загружаю, правильно сохраняются в моей базе данных, однако при записи файлов на диск они заканчиваются размером 0 байт и повреждены.Может кто-нибудь, пожалуйста, проясните это?

Я пробовал использовать другие модули загрузки, однако ни один из них не может быть так легко осуществим, как экспресс-загрузка файла.

POSTS.JS (ROUTE FILE)

router.post('/create', (req, res)=>
{
  let filename = '';

  if (!isEmpty(req.files))
  {
    let file = req.files.fileUpload;
    filename = Date.now() + '-' + file.name;

    let dirUploads = './public/uploads/';

    file.mv(dirUploads + filename, (err) =>
    {
      if (err) throw err;
    });

    console.log(req.files.fileUpload);
  }
}

CREATE.HANDLEBARS (HTML FILE)

<form action="/admin/posts/create" method="post" enctype="multipart/form- 
data">
    <!-- File upload section. -->
    <div class="form-group">
      <label for="file">Upload File</label>
      <input name="fileUpload" type="file" class="form-control" 
      id="fileupload">
    </div>

Я ожидаю, что файл изображения будет сохранен правильно, поскольку я выполнил правильную процедуру реализации.

Выходные данные консоли подтверждают, что файл правильно сохранен в моей базе данных:

{ name: 'MENTORSHIPMARKETINGBLUE.png',
  data:
  <Buffer 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 01 f4 00 
  00 01 f4 08 06 00 00 00 cb d6 df 8a 00 00 20 00 49 44 41 54 78 9c ed dd 
  77 78 56 f5 fd ... >,
  encoding: '7bit',
  tempFilePath: '\\tmp\\tmp1550292689804',
  truncated: false,
  mimetype: 'image/png',
  md5: [Function: md5],
  mv: [Function: mv] }
{ status: 'public',
  _id: 5c6796d1dc28613b845173e5,
  title: 'weg',
  allowComments: false,
  body: 'weg',
  file: '1550292689806-MENTORSHIPMARKETINGBLUE.png',
  __v: 0 }

Однако сохраненные файлы действительно повреждены.

1 Ответ

0 голосов
/ 20 февраля 2019

Точно то же самое случилось со мной тоже.Иногда, когда вы устанавливаете пакет, он не устанавливается должным образом.Просто удалите его, а затем установите его снова, и убедитесь, что у вас есть хороший интернет при этом.Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...