Jump to content

Recommended Posts

Posted

Boas!

Estou a fazer uma aplicação em angularjs que comunica com uma api rest json.

E queria implementar agora um upload de fotos...mas não sei muito bem como enviar a imagem por json, sei que posso utilizar o Base64 ou o multipart/form-data

Estou a tentar este código, mas ele não me envia nada, alguém me pode ajudar?

var myApp = angular.module('myApp',['ngResource']);
function MyCtrl($scope, $resource) {
$scope.movies = $resource('/test/api/v1/Movie/:id/',
 {},
 { 'get': {method:'GET', params: {id: '@id'} },
'update': {method:'PUT', params:{id: '@id'}},
'save': {method:'POST', params: {},
'query':  {method:'GET', }},
'remove': {method:'DELETE', params:{id: '@id'}},
'delete': {method:'DELETE'} });

$scope.saveUpload = function(modelInstance) {
 var files = document.getElementById('img').files[0];
	 console.log(files);
	 $scope.movies.save({MovieCover: files,
	   params:modelInstance,
		headers: {'Content-Type': 'multipart/form-data'}
		 })
 }		  
}
  • 1 month later...
Posted

Não se pode enviar uma imagem por JSON. Se te limitares a browsers com suporte HTML5 podes usar o método toDataUrl de um objecto canvas e a API FileReader: http://stackoverflow.com/questions/13938686/can-i-load-a-local-file-into-an-html-canvas-element

Isto nada em prejuízo de imensas soluções que já existem por aí (uploadify, etc).

vou ignorar este post ...

podes muito bem fazer o enconding do ficheiro para base64 (exemplo : http://stackoverflow.com/questions/246801/how-can-you-encode-to-base64-using-javascript) e enviar no JSON

o PHP terá depois de fazer o decode e gravar num ficheiro

IRC : sim, é algo que ainda existe >> #p@p
Posted

Uh...como é que fazes o encode de algo a que ainda não tens acesso? Essa abordagem apenas funciona se já tiveres a imagem no servidor e neste caso estamos a falar de upload de ficheiros para o servidor (note-se o acesso à propriedade FILES de um INPUT do tipo FILE).

Posted (edited)

Uh...como é que fazes o encode de algo a que ainda não tens acesso? Essa abordagem apenas funciona se já tiveres a imagem no servidor e neste caso estamos a falar de upload de ficheiros para o servidor (note-se o acesso à propriedade FILES de um INPUT do tipo FILE).

e quem te disse que não tenho acesso ?

http://www.w3.org/TR/FileAPI/

Edited by HappyHippyHippo
IRC : sim, é algo que ainda existe >> #p@p

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.