我通过FormData将一个文件从Angular 5.xx上传到Jersey1.xx。
数据已收到并成功保存在我的服务器应用程序目录中,但是浏览器从图片上说出了这一行(Chrome和Firefox)。
当我仅通过HTML上传它时,就像这样:
Choose file to upload<br>
<form action="http://localhost:8181/BackendMaven" method="post" enctype="multipart/form-data">
<input name="input" id="filename" type="file" /><br><br>
<button name="submit" type="submit">Upload</button>
</form>
Run Code Online (Sandbox Code Playgroud)
它不会显示。
这是有角度的FromData代码:
@ViewChild('fileInput') fileInput;
submitFile(): void{
console.log("submitFIle called!!!");
let fi = this.fileInput.nativeElement;
let fileToUpload = fi.files[0];
let formData = new FormData();//empty formdata
formData.append("input", fileToUpload);
console.log(formData.get("input"));
this.http.post(this.URI_UPLOAD,formData).subscribe();}
Run Code Online (Sandbox Code Playgroud)
和服务器端(我使用tomcat)
public Response uploadFile(@FormDataParam("input") InputStream uploadedInputStream, @FormDataParam("input") FormDataContentDisposition fileDetail) {
...
return Response.status(200).entity("Successfully uploaded to location: " + FileFactory.getFilePath(uploadedFileLocation)).build();
}
}
Run Code Online (Sandbox Code Playgroud)
尝试实际发送JSON响应,或告诉angular期望有所不同。如果您使用的是HttpClient,则默认情况下将使用JSON。
像这样:
this.http.post(url, body, { responseType: 'text' }).subscribe();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3755 次 |
| 最近记录: |