将 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的主要内容,如果未能解决你的问题,请参考以下文章

FormData对象实现文件Ajax上传

如何使用邮递员测试formdata?

使用 Jackson 将单个文件中的多个 JSON 对象读入 Java

FormData对象

c# 后台接收formdata对象

FormData对象