我正在使用java webservice(在tomcat上)。 我有以下代码处理图像上传:
public String uploadPicture( long xId,
int pictureIndex,
String imageData )
{
File imageFile = new File( new String( "D:\\" + xId + "_" + pictureIndex ) );
try
{
FileOutputStream fos = new FileOutputStream( imageFile );
byte[] encodedImage = Base64.decode( imageData );
fos.write( encodedImage );
fos.close();
return imageFile.getPath();
}
catch( FileNotFoundException e )
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch( Base64DecodingException e )
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch( IOException e )
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
我将路径指定为D:\,因为它位于本地PC上。 但我需要更新它将部署它的服务器上的路径 - 然后应该将其更改为〜\ picDir?类似的东西?
网络服务网址:http://192.168.0.11:8080/XWebService/services/XWebService 将更新到域而不是192.168.0.11 什么是获取图像的URL? (例如,如果图片文件夹是:〜\ picDir)
答案 0 :(得分:2)
总结:
您应该阅读有关* .war文件的上下文以及文件本身的组织方式的更多信息。
了解Tomcat示例中的网址和上下文
假设:
当您将myapp.war部署到远程Tomcat到webapps目录(/ var / lib / tomcat6 / webapps)时,它将被解压缩,您将能够在http://2.2.2.2:8080/myapp/utils/myservlet.html下看到您的servlet。通过在Tomcat的server.xml中配置应用程序,您可以添加域名并减少不必要的“myapp”部分,称为上下文,有效地将URL保留为http://www.myapp.com/utils/myservlet.html的形式。这就是您在生产环境中所需要的。 Tomcat的文档中解释了这个主题,请参考它。
从Web应用程序访问文件系统资源 如果您想从服务器保存或获取任何文件,请记住客户端(Web浏览器)不知道底层磁盘结构。浏览器使用请求 - 响应通信模式(在上传/下载方面)可由服务器处理,如下所示:
正如您在两种情况下所看到的,服务器文件系统是服务器本身的内部问题。您可以将其保存在任何地方。您可以从任何位置读取字节。这就是为什么让MYAPP_CONF(在评论中提到)总是从某个预定义的目录中存储和读取这些文件是很好的。