正在将FormData对象读取到Java HTTP触发的Azure函数中



我最近创建了一个HTTP触发的Java Azure函数来处理我的一些后端任务。此Azure函数的主要目的是接受/读取包装在javascript FormData对象中的图像文件并将文件上传到我的azure blob存储中。

我一直在网上搜索,但找不到一个如何从java中的FormData对象读取文件的工作示例?我在C#和node.js.

这是链接-->Azure函数-如何读取表单数据

因此,必须有在Java中实现这一点的方法,有人拥有或可以提供一个工作示例吗?

public class Function {
@FunctionName("HttpTrigger-Java")
public HttpResponseMessage run(@HttpTrigger(name = "req", methods = 
{HttpMethod.POST}) HttpRequestMessage<Optional<String>> request,
final ExecutionContext context) {            
String postRequest = request.getBody();
//HELP: I need to get the FormData object from the postRequest some how... 
FormData formDataObj = postRequest.getFormData();
//HELP: Then I need to get my image file from the FormData Object...
File sourceFile = formDataObj.getImageFile(); 

try {
// Parse the connection string 
storageAccount = CloudStorageAccount.parse(storageConnectionString);
// get blob client 
blobClient = storageAccount.createCloudBlobClient();
// get container name 
container = blobClient.getContainerReference(containerName);    
//Getting a blob reference
blob = container.getBlockBlobReference(sourceFile.getName());
//Creating blob and uploading file to it                
blob.uploadFromFile(sourceFile.getAbsolutePath());
} catch (StorageException ex) {
return request.createResponseBuilder(HttpStatus.BAD_REQUEST).body("There was an error with Storage Account.").build();
}
return request.createResponseBuilder(HttpStatus.OK).body("Images Uploaded Successfully!, ").build();
}

}

我相信你可以使用Apache Commons FileUpload解析正文,要从字符串中解析,这个答案显示了一种方法。

最新更新