将图像从Android应用程序库上传到本地spring服务器

时间:2017-03-07 09:18:49

标签: java android spring spring-mvc

最近3天我开始学习Spring。我想将图像从手机图库发送到弹簧服务器。我想提一下服务器是本地的,所以我使用localhost。我看到一个教程,如果我想将内容发送到本地服务器,服务器地址是我的笔记本电脑地址+端口(例如8080),我必须将手机连接到与笔记本电脑相同的Wi-Fi。

我知道如何从图库中获取图片,但我不知道如何发送图片。 stackoverflow的许多解决方案都是旧的,有些类已被弃用,我无法尝试他们的方法。

另外,我应该在弹簧控制器中做什么来接收图像?

1 个答案:

答案 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);