将 FormData 对象读入 Java HTTP 触发的 Azure Functions
Posted
技术标签:
【中文标题】将 FormData 对象读入 Java HTTP 触发的 Azure Functions【英文标题】:Reading FormData object into Java HTTP Triggered Azure Functions 【发布时间】:2020-07-01 03:50:55 【问题描述】:我最近创建了一个 HTTP 触发 Java Azure 函数来处理我的一些后端任务。此 Azure-Functions 的主要目的是接受/读取包装在 javascript FormData 对象中的图像文件 并将文件上传到我的天蓝色 blob 存储。
我一直在网上搜索,但无法找到如何在 java 中从 FormData 对象中读取文件的工作示例?我已经看到了一些使用 C# 中的 azure 函数和 节点.js。
这是链接 --> Azure functions - How to read form data
所以必须有在 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();
【问题讨论】:
【参考方案1】:我相信您可以使用 Apache Commons FileUpload 解析正文并从字符串中解析,此 answer 显示了一种方法。
【讨论】:
您好,感谢您的回复!我在我的问题中添加了我的代码,并在我需要帮助的确切位置添加了“帮助”一词。你能给我一个简单的例子吗?我遇到的问题是我只获得了 HttpRequestMessage 对象,似乎无法找到如何从中获取 FormData 对象。以上是关于将 FormData 对象读入 Java HTTP 触发的 Azure Functions的主要内容,如果未能解决你的问题,请参考以下文章