java - Jboss图片上传和http访问显示图片

标签 java jboss image-uploading

我正在通过使用以下代码获取绝对路径将图像上传到 jboss 服务器

getServletContext().getRealPath("");

上传的图像被移动到绝对路径,我可以使用 http://test.com:8080/image.jpg 访问图像

我的问题是图像正在上传到 jboss 服务器的 tmp 目录,所以我在下一次部署中丢失了上传的图像。 我尝试将图像上传到各种路径以使其工作 \jboss-5.0.1.GA\服务器\默认\部署 这里也是\jboss-5.0.1.GA\server\default\work\jboss.web\localhost 但是失败了,我无法使用 http://test.com:8080/image.jpg 访问图像

请帮我解决这个问题......

最佳答案

您可以添加新上下文以指定访问外部文件夹的路径。

Jboss 4 及更早版本的步骤:

  1. 打开你的文件 /YOURINSTANCE_JBOSS/deploy/jboss-web.deployer/server.xml .
  2. 定义一个新的 Context在标签 <Host name=”localhost” ...>

    例子:

    <Host name=”localhost” ...>
    <Context path=”/myfolder” docBase=”/home/username/my_images” reloadable=”true”></Context>
    

    /myfolder 是您用来访问文件的路径,/home/username/my_images 是您要上传的文件夹你的照片。

  3. 重启 JBoss

现在您将能够使用下一个路径访问您的文件:

http://yourserver:yourport/myfolder/filename

Jboss 5 的步骤:

  1. 创建一个名为 context.xml 的新文件进入你的WEB-INF包含下一个内容的文件夹:

    <?xml version="1.0" encoding="UTF-8"?>
    <Context allowLinking="true" cookies="true" crossContext="true" override="true">
        <Resources allowLinking="true" className="YOUR_PACKAGE.MyResources" homeDir="/home/username/my_images" />
    </Context>
    

    className 是将访问资源的 java 类,homeDir 您的外部目录。

  2. 根据这个link创建一个新类来访问文件中定义的资源 context.xml

    例子:

    public class MyResources extends FileDirContext {
    
    }
    

现在您将能够使用下一个功能访问您的文件:

request.getServletContext().getResourceAsStream(uri);

Jboss 5 及更早版本的步骤:

  1. 创建一个名为 context.xml 的新文件使用以下内容进入您的 WEB-INF 文件夹:

    <?xml version="1.0" encoding="UTF-8"?>
    <Context allowLinking="true" cookies="true" crossContext="true" override="true">  
        <Resources allowLinking="true" homeDir="/home/username/my_images" />  
    </Context>
    

    homeDir 是您的外部目录。

  2. 创建符号链接(symbolic link):YourDeployedProject.war/myfolder链接到 /home/username/my_images

    window :

    mklink /D C:\YOUR_JBOSS_SERVER\server\default\deploy\YourDeployedProject.war\myfolder C:\users\YOURUSER\my_images
    

    Linux:

    YourDeployedProject.war# ln -s /home/username/my_images myfolder
    

现在您将能够使用下一个路径访问您的文件:

http://localhost:8080/DeployedProject/myfolder/filename

Jboss 7 的步骤:

JBoss 7 不允许以前 JBoss 版本的任何方法,因此最简单的解决方案是实现一个 Servlet 来访问您的文件,如下一个 link 所示。 .

关于java - Jboss图片上传和http访问显示图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17359038/

相关文章:

java - Spring http 调用程序,bean 范围不被尊重?

java - ArrayList<MyClass> 问题

android - 使用 Pipe (Aerogear) 调用 api 时获取状态代码 404 和服务连接错误

JBoss EAP 6.4 : NoClassDefFoundError on class sun. 安全.jca.GetInstance

java - 应用归并排序逻辑

java - Liferay DLFileEntryLocalServiceUtil.addFileEntry 不创建 AssetEntry 记录

java - 在 WildFly 8.2.0 Final 版本中添加模块

jquery - Ruby on Rails - 使用 dropzone 以嵌套形式上传图像

python - 即使没有限制,Flask-Uploads 也总是抛出 'UploadNotAllowed' 错误

jquery - 无法使用 jquery 设置表单属性