最近3天我开始学习Spring。我想将图像从手机图库发送到弹簧服务器。我想提一下服务器是本地的,所以我使用localhost。我看到一个教程,如果我想将内容发送到本地服务器,服务器地址是我的笔记本电脑地址+端口(例如8080),我必须将手机连接到与笔记本电脑相同的Wi-Fi。
我知道如何从图库中获取图片,但我不知道如何发送图片。 stackoverflow的许多解决方案都是旧的,有些类已被弃用,我无法尝试他们的方法。
另外,我应该在弹簧控制器中做什么来接收图像?
答案 0 :(得分:1)
您将使用MultipartFile
使用spring上传图片。请仔细阅读以下示例。
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public String fileUpload(@RequestParam("file") MultipartFile file) {
try {
// Get the file and save it somewhere
byte[] bytes = file.getBytes();
//save file in server - you may need an another scenario
Path path = Paths.get("/" + file.getOriginalFilename());
Files.write(path, bytes);
} catch (IOException e) {
e.printStackTrace();
}
//redirect to an another url end point
return "redirect:/upload-status";
}
请确保您可以通过移动设备访问计算机。我相信您可能知道Android需要额外的权限才能使用网络连接。因此,请确保您已允许您的应用访问网络。
修改强>
您可以使用HttpClient
从移动应用上传文件。请尝试以下代码。
HttpClient httpClient = AndroidHttpClient.newInstance("App");
HttpPost httpPost = new HttpPost("http://your-server-url");
httpPost.setEntity(new FileEntity(new File("your-file-path"), "application/octet-stream"));
HttpResponse response = httpClient.execute(httpPost);