Chcę przesłać zdjęcie do serwera za pomocą JSONa robię to tak:
$scope.uploadFile = function(files) {
var fd = new FormData();
//Take the first selected file
fd.append("file", files[0]);
$http.post('rest/...', fd, {
withCredentials: true,
headers: {'Content-Type': 'application/json' },
transformRequest: angular.identity
}).success( ).error( );
};
Na serwerze:
@POST
@Path("/recievePhoto")
@Consumes(MediaType.APPLICATION_JSON)
public void getPhoto(String photo) throws IOException{
byte[] imageDataBytes = Base64.encode(photo);
File myFile = new File(System.getProperty("catalina.base"), "photo.jpg");
myFile.createNewFile();
try {
FileOutputStream fileOuputStream = new FileOutputStream(myFile);
fileOuputStream.write(imageDataBytes);
fileOuputStream.close();
System.out.println("Done");
}catch(Exception e){
e.printStackTrace();
}
}
Wszystko niby spoko plik jest tworzony ale nie mogę go otworzyć bo pisze, że jest uszkodzony. To Base64 jest z com.sun.jersey.core.util.
Jak to powinienem poprawnie zrobić? Można to jakiś zrobić za pomocą ObjectMappera?
Chciałbym przesyłać pliki jpg oraz png.