在一个无状态的移动应用程序中,我需要将一个图像文件从一个移动客户端上传到我的服务器,该服务器公开一个基于 Spring MVC 的 Web 层(稍后我将需要对该图像执行 OCR 过程,但这一点不相关) .
我见过的所有 spring MVC 文件上传示例都是基于MultipartFiles的,它不适合我的需求,因为它们假设 modelAndView 存在,但是我的服务器是无状态的,我不使用模型或视图,也不使用 http 会话,只有纯和简单的 JSON 格式的宁静请求。
我想知道最好的方法是什么?
现在,我创建了一个测试,将我的图像作为字符串发送到我的服务器(使用 base64 编码)。就像是:
ClassPathResource myFile= new ClassPathResource("imageName.jpg");
byte[] fileByteArray = Files.readAllBytes(myFile.getFile().toPath());
String imageAsString = Base64.encodeBase64URLSafeString(fileByteArray);
现在我将这个 imageAsString 发送给我的控制器。然后在我的控制器中,我可以使用以下内容将此字符串解码回字节数组:
public static byte[] decodeFile(String fileDataString) {
return Base64.decodeBase64(fileDataString);
}
所以在我的服务器中,我现在持有一个字节数组,它是原始数据,除了将它写入 FileOutputStream 之外,我不确定我可以用它做任何事情。有人可以推荐将图像上传到我的服务器的良好做法吗?