put(API_CONTEXT + "/sounds/:id/record", "audio/wav", (request, response)
-> soundService.uploadRecord(request.params(":id"), request), new JsonTransformer());
processing:
public Object uploadRecord(String params, Request request) {
curl -X PUT --upload-file doorbell.wav -v http://localhost:8080/api/v1/sounds/552398fad4c6314ca6689eb4/record
public Object uploadRecord(String id, Request sparkRequest) {
HttpServletRequest request = sparkRequest.raw();
boolean isMultipart=ServletFileUpload.isMultipartContent(request);
// Create a factory for disk-based file items
DiskFileItemFactory factory = new DiskFileItemFactory();
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
// Parse the request
try {
List<FileItem> items = upload.parseRequest(request);
FileItem item = items.get(0);
try {
String fileName = item.getName();
if(fileName != null) {
File uploadedFile = File.createTempFile(fileName, ".tmp");
item.write(uploadedFile);
// Do your stuff with uploaded temporary file
}
} catch (Throwable e) {
e.printStackTrace();
}
} catch (FileUploadException e) {
e.printStackTrace();
}
return null;
}
curl -v -F "file=@doorbell.wav" http://localhost:8080/api/v1/sounds/552398fad4c6314ca6689eb4/record