0

我有下面的代码,它在从闪存捕获图像后动态创建目录以存储图像。

如果图像是从不同的 IP 地址捕获的,我想创建具有新名称的新目录,例如“terminal_2”(这里它使用名称 terminal_1 创建)。

例如:目前,如果我的 IP 地址是 192.113.25.13,那么它会创建“terminal_1”目录,如果我的 IP 地址更改为 192.113.37.25,那么它应该创建“terminal_2”目录并将图像存储在“terminal_2”目录中。

我知道如何使用 java 捕获 IP 地址。

String fileStoreURL="";
String rootpath="/applicationservices/fileshare/vm/uploads";
fileStoreURL = config.getServletContext().getRealPath("") + rootpath + "/terminal_1";

try {
    File f = new File(fileStoreURL);
    if (!f.exists())
    {
        f.mkdirs();
    }
}
catch (Exception e)
{

}

try {
    long time = new Date().getTime();
    FileOutputStream fileOutputStream = new FileOutputStream(fileStoreURL + "/"+time+".jpg");
    int res;
    while ((res = request.getInputStream().read()) != -1) {
        fileOutputStream.write(res);
    }

    fileOutputStream.close();
/*
 * To make sure each url is differeent and not cached added time to tit
 */
response.getWriter().append(
"http://localhost/......./fileshare/vm/uploads/terminal_1/" + time+ ".jpg");

} catch (Exception e)
{
    e.printStackTrace();
} 
finally 
{   

} 
4

1 回答 1

0

如果我理解正确,那么(如果我错了,请更正):

  1. 您需要存储从特定 IP 地址获得的图像。
  2. 对于每个 IP,您需要在服务器上创建一个单独的文件夹,例如(terminal_1、terminal_2 等)。
  3. 然后在该文件夹中,您需要存储从特定 IP 获得的图像。

您已经做了以下事情:

  1. 获取正在访问您的应用程序的机器的 IP 地址。
  2. 在服务器上创建一个文件夹
  3. 在该文件夹中创建图像

待办事项:

  1. 为不同的 IP 创建不同的文件夹。
  2. 检查此 IP 的文件夹是否已创建的逻辑。
  3. if (folder not created) { then create } else { don't create, just save the image}.

所以这是我处理未决事物的方法:

  1. 您需要维护 IP 地址和文件夹名称之间的某种关系,并将其存储在数据库或服务器文件系统上的文件(如属性文件)中。假设您从 192.168.1.23 获取图像并将其存储在终端 1 中,然后您从 192.167.0.34 获取图像并将其存储在终端 2 中,现在您再次从 192.168.1.23 获取另一个图像,那么您将创建一个新文件夹还是将图像存储在 terminal_1 中。因此,要确定此 IP 地址 (192.167.0.34) 的文件夹是否已创建,您需要维护 IP 地址和文件夹之间的某种关系。
  2. 然后,当您从 IP 地址(例如 192.168.1.23)获取图像时,在数据库中搜索 IP 地址:

    if(no mapping found for this IP Address) {
        // 1) create the folder and give some name for eg: terminal_2
        // 2) store this mapping of IP Address and the folder name
        // 3) Save the image inside this folder
    } else if (mapping found) {
        // 1) fetch the folder name
        // 2) Save the image in this folder
    }
    

希望这可以帮助。

于 2012-07-31T10:53:33.217 回答