0
Angularをフロントエンドに、Java ee Webサービスjax rsをバックエンドとして使用してイメージをサーバーにアップロードしようとしています。角度/フロントエンドのためにこの私のコード:角度4のファイルを安心してアップロードjax rs java ee
HTMLページ:
<md-card>
<input type="file" (change)="onChange($event)" placeholder="Upload
files" >
</md-card>
コンポーネントの場合:
:fileChange(event) {
let fileList: FileList = event.target.files;
let fileListLength = fileList.length;
if(fileListLength > 0) {
let formData:FormData = new FormData();
for (var i = 0; i < fileListLength; i++) {
formData.append("uploadFile[]", fileList[i]);
}
let headers = new Headers();
headers.append('Content-Type', 'multipart/form-data');
headers.append('Accept', 'application/json');
let options = new RequestOptions({ headers: headers });
this.http.post("http://localhost:8080/BCWEB/uploadProdImage", formData,
options)
.map(res => res.json())
.catch(error => Observable.throw(error))
.subscribe(
data => console.log('success'),
error => console.log(error)
)}
}
For the backend java ee restful web service:
String[] contentDispositionHeader = headers.getFirst("Content-
Disposition").split(";");
for (String name : contentDispositionHeader) {
if ((name.trim().startsWith("filename"))) {
String[] tmp = name.split("=");
String fileName = tmp[1].trim().replaceAll("\"","");
return fileName;
}
}
return "randomName";
}
// save uploaded file to a defined location on the server
private void saveFile(InputStream uploadedInputStream,
String serverLocation) {
try {
OutputStream outpuStream = new FileOutputStream(new
File(serverLocation));
int read = 0;
byte[] bytes = new byte[1024];
outpuStream = new FileOutputStream(new File(serverLocation));
while ((read = uploadedInputStream.read(bytes)) != -1) {
outpuStream.write(bytes, 0, read);
}
outpuStream.flush();
outpuStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
は**問題は、私はこれを取得することです
java.io.IOException:RESTEASY007550:マルチパートの境界を取得できません "**
乾かんですが、それでも私には同じ問題が発生します –
原因:java.io.IOException:RESTEASY007550:マルチパートの境界を取得できません –