Pergunta

Eu sou novo para o nó j e eu estou criando uma aplicação simples onde o usuário vai criar uma conta, com detalhes, e eu tenho usado o mongodb no back-end para armazenar os dados do utilizador o seu nome e-mail etc.

Depois de criar um acccont estou redirecionando-o à página de login, onde o usuário tem de fazer o login e sobre o login sucesso usuário será redirecionado para o perfil, onde agora eu estou mostrando o seu nome usando sessões.

Agora, o que eu quero, eu quero carregar a foto de um usuário na criação da conta e eu estou querendo saber como vou ligar para minha conta criar o formulário como mostrado na captura de tela, poupando-a para o mongodb.

Eu quero mostrar que o usuário de imagem como imagem de perfil quando o utilizador de início de sessão e será redirecionado para sua página de perfil.

Eu tenho encontrado muitos links em guardar a imagem no mongodb, mas não conseguia obter qualquer ajuda e eu também estou anexando a página de perfil de imagem.

Como posso implementar isso ?enter image description here

página de perfil

enter image description here

Foi útil?

Solução

Se você realmente deseja salvar a imagem do perfil em MongoDB.Eu sugiro que você vá através Quando devo usar o GridFS?

E, em seguida, decidir qual é o tamanho máximo da imagem de perfil que você está indo para permitir que o usuário faça upload

MongoDB BSON os documentos estão limitadas a 16 MB.Então, se o total de todo o seu documento de que o usuário não seja superior a 16 MB, você poderá armazená-los diretamente no seu documento usando o BinData tipo de dados.

Imagens/Vídeos/PDF/Ppt/folhas de cálculo, etc - nunca assuntos, eles podem ser armazenados da mesma forma.Cabe a sua aplicação para retornar um tipo de conteúdo apropriado no cabeçalho para exibir corretamente em seu aplicativo da web.

Codificação feliz..:)


Atualização: Para fazer isso você precisa de base64 codificar os dados de imagem como a seguir:

var base64Image = novo Buffer(uploadedFilesData, 'binário').toString('base64');

Em seguida, armazená-lo usando Mongo do BinData tipo, ele irá, em seguida, salvá-lo como um BSON matriz de bits, na verdade, não armazenar o base64 seqüência de caracteres, de modo que o tamanho não vai crescer mais do que o seu original imagem binária.E quando você ler a partir do MongoDB e pretende servir como imagem, você pode fazer como a seguir:

app.get('/getimage', function(req, res) {
  db.collection.find({'imgId':req.params.id}, function(err,data) {
      var base64Image = var img = new Buffer(data.imgDataField, 'base64');
      res.writeHead(200, {
        'Content-Type': 'image/jpeg',
        'Content-Length': base64Image.buffer.length
      });
      res.end(base64Image.buffer);
  }
}

Do lado do cliente, você deve mostrar base64Image dados algo como:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAB50RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNS4xqx9I6wAAAVBJREFUOI2tlLFKA0EQhr+9i2J1kBDFYG91gYRA0ngpJELQ2KSwlFjYKIidlZVvIFgEXyBYaBH0ESysLATBPiRYWFgEye7eWkSimL1wyg1MM//Mx87O7ghjjCEhc5ICJQ5LRQm9/oDLqzsenl4QgAHK/ir7O5us5JatNcJ2Z73+gKOzCz6kQjguQoAxYELNwlyK89NDK9DaZrvTZTiS4LggBAYBQoDjMhxJ2p1u/DbvH59xU/MYrac0Y8Z6bJgJDaEF9FOPDdNKMev1hVrFh2XTHq9v75GwpYxnjVsH0GrW0UqhtZ52pWg16/FhjVpANu2Ngb88m/Zo1IL4MICg5FthQcmPKomGVSsFpJQopSYupaRaKUTCIr9TuZhnq76O47iTWBhqysX832EA1ze3COf78LnFDBzvRebP3BrbG2tfUx23eXKwOyvd/tH/a4nus083fKdxIODDXwAAAABJRU5ErkJggg==" />
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top