Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Tomcat服务器上保存和加载映像_Java_Image_Tomcat_Jakarta Ee - Fatal编程技术网

Java 如何在Tomcat服务器上保存和加载映像

Java 如何在Tomcat服务器上保存和加载映像,java,image,tomcat,jakarta-ee,Java,Image,Tomcat,Jakarta Ee,我正在编写一个JavaEE应用程序,我尝试从URL获取一个图像,然后将其保存在我的资源文件夹中(通过AJAX请求)。 我的问题是,如果我不重新启动服务器,我将无法显示此图像,因为它没有加载到我的服务器上 我正在使用Tomcat7、Spring、Hibernate和Primeface 这是我的类来保存我的图像 公共类ImageSaver{ 最终静态整数大小=1024; 公共静态void文件URL(字符串fAddress、字符串localFileName、字符串destinationDir){ Ou

我正在编写一个JavaEE应用程序,我尝试从URL获取一个图像,然后将其保存在我的资源文件夹中(通过AJAX请求)。 我的问题是,如果我不重新启动服务器,我将无法显示此图像,因为它没有加载到我的服务器上

我正在使用Tomcat7、Spring、Hibernate和Primeface

这是我的类来保存我的图像

公共类ImageSaver{
最终静态整数大小=1024;
公共静态void文件URL(字符串fAddress、字符串localFileName、字符串destinationDir){
OutputStream outStream=null;
URLConnection=null;
InputStream=null;
试一试{
URL=新URL(时尚服饰);
字节[]buf;
内特比德;
int字节写入=0;
outStream=new BufferedOutputStream(new FileOutputStream(destinationDir+“\\”+localFileName));
uCon=url.openConnection();
is=uCon.getInputStream();
buf=新字节[大小];
而((byteRead=is.read(buf))!=-1){
输出流写入(buf,0,byteRead);
字节写入+=字节数;
}
}
捕获(例外e){
e、 printStackTrace();
}
最后{
试一试{
is.close();
exptream.close();
}
捕获(IOE异常){
e、 printStackTrace();
}
}
}
公共静态void文件下载(字符串fAddress、字符串fileName、字符串destinationDir){
int slashIndex=fAddress.lastIndexOf('/');
int periodIndex=fAddress.lastIndexOf('.');
//字符串文件名=fAddress.substring(slashIndex+1);
如果(periodIndex>=1&&slashIndex>=0&&slashIndex
我调用函数的方式是:

ImageSaver.fileDownload("http://www.mywebsite.com/myImage.jpg","myImage.jpg", "C:\\Users\\MyProject\\src\\main\\webapp\\resources\\images");
如何在不重新启动的情况下自动将上载的图像加载到服务器上?
哪个文件允许配置上载文件夹?怎么做呢?

你不应该将动态检索的图像写入你的webapp文件夹——这会给你带来一系列问题。相反,将它们保存到appserver根目录之外的文件夹中,并创建一个下载servlet来服务这些资源

否则的危险是,您将从外部源检索一些jsp文件,将它们保存到您的appserver,下载时appserver将愉快地在服务器端执行它


假设您的webapp目录不可写入您的webapp。这也将简化备份和更新:假设您需要安装更新或迁移到其他服务器:服务器上的应用程序将仅部分包含在其*.war文件中。如果有明确的资源目录,您可以独立备份(或将其放在网络共享驱动器上)

好的,我已经尝试过这种方法,但我认为不是一种好方法。如何将文件夹“连接”到我的Web应用程序?我的意思是,如果我将图像存储在C:/image中,那么如果我使用路径C:/image/myimage.jpg在我的JSP中显示它(事实上我使用XHTML,但这不是重点),它将不起作用。我在web.xml中读过一些关于过滤器的内容,我们可以在其中指定一个上传文件夹。这是一个好的解决方案吗?如果是,它是如何工作的?谢谢你的回答。我想我的问题的回答是肯定的,看起来一模一样。感谢链接