I'm trying to post a binary file from my client (jQuery) to my server (Java). I'm using Apache CXF and REST. The file is making it to the server, which promptly throws an exception.
Here's the JavaScript on the client side:
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');
}
});
}
Here is the server-side code:
@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();
}