Jey*_*har 3 java jboss image-uploading
我通过使用以下代码获取绝对路径将图像上传到jboss服务器
getServletContext().getRealPath("");
Run Code Online (Sandbox Code Playgroud)
上传的图像被移动到绝对路径,我可以使用http://test.com:8080/image.jpg访问图像
我的问题是图像被上传到jboss服务器的tmp目录,所以我在下一次部署中丢失了上传的图像.我尝试将图像上传到各种路径以使其工作\ jboss-5.0.1.GA\server\default\deploy和此处\ jboss-5.0.1.GA\server\default\work\jboss.web\localhost以及但失败了,我无法使用http://test.com:8080/image.jpg访问该图像
请帮助我...
您可以添加新上下文以指定访问外部文件夹的路径.
适用于Jboss 4和旧版本的步骤:
/YOURINSTANCE_JBOSS/deploy/jboss-web.deployer/server.xml.Context在标签中定义新内容<Host name=”localhost” ...>
例:
<Host name=”localhost” ...>
<Context path=”/myfolder” docBase=”/home/username/my_images” reloadable=”true”></Context>
Run Code Online (Sandbox Code Playgroud)
其中/ myfolder将是您将用于访问文件的路径,/ home/username/my_images将是您要上传图片的文件夹.
重启JBoss
现在,您将能够使用下一个路径访问您的文件:
http://yourserver:yourport/myfolder/filename
Run Code Online (Sandbox Code Playgroud)
Jboss 5的步骤:
使用下一个内容创建一个名为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>
Run Code Online (Sandbox Code Playgroud)
其中className是将访问资源的java类,homeDir是您的外部目录.
根据此链接创建一个新类来访问文件中定义的资源context.xml
例:
public class MyResources extends FileDirContext {
}
Run Code Online (Sandbox Code Playgroud)现在,您将能够使用下一个功能访问您的文件:
request.getServletContext().getResourceAsStream(uri);
Run Code Online (Sandbox Code Playgroud)
适用于Jboss 5和旧版本的步骤:
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>
Run Code Online (Sandbox Code Playgroud)
其中HOMEDIR是外部目录.
创建一个符号链接:YourDeployedProject.war/myfolder链接到/home/username/my_images
视窗:
mklink /D C:\YOUR_JBOSS_SERVER\server\default\deploy\YourDeployedProject.war\myfolder C:\users\YOURUSER\my_images
Run Code Online (Sandbox Code Playgroud)
Linux的:
YourDeployedProject.war# ln -s /home/username/my_images myfolder
Run Code Online (Sandbox Code Playgroud)现在,您将能够使用下一个路径访问您的文件:
http://localhost:8080/DeployedProject/myfolder/filename
Run Code Online (Sandbox Code Playgroud)
Jboss 7的步骤:
JBoss 7不允许使用以前JBoss版本的任何方法,因此最简单的解决方案是实现一个Servlet来访问您的文件,就像在下一个链接中一样.
| 归档时间: |
|
| 查看次数: |
9074 次 |
| 最近记录: |