일부 텍스트 및 숫자 형식의 이미지를 html 형식으로 업로드하려고합니다. 프론트 엔드에서 나는 백엔드에서 angularjs와 rest jersey를 사용합니다. 내 문제는 내 개체 "Vehicule"마녀가 바이트 [] 이미지가 포함 된 유지하려고 할 때입니다. 내가 각도 컨트롤러에서 자원 지시문을 사용하고 있지만 양식을 제출하려고 할 때 "VALUE_STRING을 base64 (MIME-NO-LINEFEEDS)로 디코딩하지 못했습니다. 잘못된 문자 ':'(코드 0x3a) 베이스 64 콘텐츠 "와 나는 앵귤러 및 휴식 저지에서 초보자이기 때문에 어떤 생각이 있습니다. 내 코드는 다음과 같습니다.VALUE_STRING을 base64 (MIME-NO-LINEFEEDS)로 디코딩하지 못했습니다.
@JsonIgnoreProperties(ignoreUnknown = true)
@Entity
public class Vehicule implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column
String marque;
@Column
String nom;
@Column
String numMat;
@Column
Long nbChevaux;
@Column
Long annee;
//@Type(type="org.hibernate.type.StringClobType")
@Column(length=100000)
byte[] image=null;
@Column(unique=true)
Long marqueur=null;
public Long getMarqueur() {
return marqueur;
}
public void setMarqueur(Long marqueur) {
this.marqueur = marqueur;
}
public Long getAnnee() {
return annee;
}
public void setAnnee(Long annee) {
this.annee = annee;
}
public byte[] getImage() {
return image;
}
public void setImage(byte[] image) {
this.image = image;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getMarque() {
return marque;
}
public void setMarque(String marque) {
this.marque = marque;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public String getNumMat() {
return numMat;
}
public void setNumMat(String numMat) {
this.numMat = numMat;
}
public Long getNbChevaux() {
return nbChevaux;
}
public void setNbChevaux(Long nbChevaux) {
this.nbChevaux = nbChevaux;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (!(obj instanceof Vehicule))
return false;
Vehicule other = (Vehicule) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
return true;
}
}
@Component
@Path("/vehicules")
public class Vehicules {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
private VehiculeDao vehiculeDao;
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Vehicule> vehiculesList()
{
return vehiculeDao.getAll();
}
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Vehicule createVehicule(Vehicule vehicule)
{
this.logger.info("create(): " + vehicule);
return this.vehiculeDao.save(vehicule);
}
}
function CreateVehiculeController($scope, $routeParams, $location, VehiculesService)
{
$scope.vehicule = new VehiculesService();
$scope.save = function() {
$scope.vehicule.$save(function() {
$location.path('/');
}
안녕하세요, 유용한 답변입니다. 어쩌면 내가 뭔가를 놓친 것 같아. 'FileReader.readAsBinaryString()','window.btoa (FileReader.resul)'및'JSON.stringify (object_with_the_file)'를 사용하여 파일을로드 할 경우. 서버에'data : text/plain; base64, R2lvcm5pIGR ... =='을 포함하는 파일이 있습니다 (base64 표현의 base64?). 'FileReader.readAsText()'를 사용하면 서버가 파일을 올바르게 수신합니다. 나는 무엇을 놓치나요? – Francesco