Pau*_* D. 3 java rest binary jquery post
我正试图从我的客户端(jQuery)发布一个二进制文件到我的服务器(Java).我正在使用Apache CXF和REST.该文件正在向服务器发送,该服务器会立即抛出异常.
这是客户端的JavaScript:
function handleFileUpload() {
console.log("handleFileUpload called");
var url = "http://myserver:8181/bootstrap/rest/upload/license";
var file = $('#file_upload').get(0).files[0];
$.ajax({
url: url,
type: "post",
data: file,
processData: false,
success: function(){
$("#file_upload_result").html('submitted successfully');
},
error:function(){
$("#file_upload_result").html('there was an error while submitting');
}
});
}
Run Code Online (Sandbox Code Playgroud)
这是服务器端代码:
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.TEXT_PLAIN)
@Path("/license")
public String uploadLicenseFile(@FormParam("file") InputStream pdfStream)
{
try
{
//byte[] pdfByteArray = convertInputStreamToByteArrary(pdfStream);
//fileLength = pdfByteArray.length;
fileLength = pdfStream.available();
response = "Upload successful!";
// TODO read file and store params in memory
}
catch (Exception ex)
{
response = "Upload failed: " + ex.getMessage();
fileLength = 0;
}
return getFileLength();
}
Run Code Online (Sandbox Code Playgroud)
您将文件作为帖子正文发送,您要做的是在多部分表单数据正文中发送文件.您可以使用FormData对象执行此操作.
function handleFileUpload() {
console.log("handleFileUpload called");
var url = "http://myserver:8181/bootstrap/rest/upload/license";
var file = $('#file_upload').get(0).files[0];
var formData = new FormData();
formData.append('file', file)
$.ajax({
url: url,
type: "post",
data: formData,
processData: false,
contentType: false,
success: function(){
$("#file_upload_result").html('submitted successfully');
},
error:function(){
$("#file_upload_result").html('there was an error while submitting');
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6799 次 |
| 最近记录: |