java - 从 Java Spring MVC 3 应用程序访问 Glassfish 文件夹

标签 java spring spring-mvc web glassfish-3

我的 Glassfish 服务器上有文件夹 .../domains/domain1/images。在我的 Java Spring Controller 中,我有将上传的图像保存在服务器上的方法:

@RequestMapping(value = "/form", method = RequestMethod.POST)
public String sendData(@RequestParam("north") Double north, @RequestParam("east") Double east, @RequestParam("phone") String phone, @RequestParam("image") MultipartFile file, HttpServletRequest request, ModelMap model) {

    if (!"image/jpg".equals(file.getContentType()) && !"image/jpeg".equals(file.getContentType())) {
        return "redirect:/form";
    }

    Date date = new Date();
    Timestamp ts = new Timestamp(date.getTime());
    String filename = ts.toString();
    filename = filename.replaceAll("\\s", "_");
    String path = imagePath + filename;

    File imageFile = new File(path);
    try {
        BufferedImage image = ImageIO.read(file.getInputStream());
        image = ImageTransformer.scaleByWidth(image, imageWidth);
        imageFile.createNewFile();
        ImageIO.write(image, "jpg", imageFile);

    } catch (IOException e) {
        e.printStackTrace();
        return "redirect:/form";
    }

    Marker m = new Marker();
    m.setNorth(north);
    m.setEast(east);
    m.setPhone(phone);
    m.setUrl(filename);

    markerService.add(m);

    return "redirect:/start";
}

我应该如何设置我的imagePath变量来实现它?我应该更改服务器配置中的某些默认路径吗?

提前致谢。

UPD:如果可能的话,不想在 Java 应用程序中处理绝对路径。

最佳答案

在 WEB-INF/glassfish-web.xml 中,尝试为您的资源添加备用文档根:

<glassfish-web-app error-url="">
  <context-root>/yourapp</context-root>
  ...
  <property name="alternatedocroot_1" value="from=/images/*  dir=/path/to/your/images"/>
  <property name="alternatedocroot_2" value="from=/sounds/*  dir=/path/to/your/sounds"/>
</glassfish-web-app>

然后,在您的应用程序代码中,您可以使用相对于应用程序根目录的路径。

关于java - 从 Java Spring MVC 3 应用程序访问 Glassfish 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15642783/

相关文章:

java - 查找a^3 + b^3 = c^3 + d^3的所有结果,Math.pow()方法引起的问题

java - 如何使用类加载器实例化 spring bean?

spring - 通过 @RequestMapping 更改 Spring MVC 中的 url 路径

java - 测试时使用 spring messagesource

java - 用户在 Spring 3 MVC 中的请求周期中看到 unicode 文本的表示不一致

java - 基元与引用的内存分配

java - 在 Buildship : how can I substitute a Gradle project with a built jar?

java - 我的方法不会接受对象

java - Spring @Primary 不工作

web-services - 无法在 Tomcat Web 服务器(本地)上运行我的 Spring MVC 项目