在EJB中创建临时或虚拟文件

时间:2016-08-05 15:04:32

标签: java-ee ejb

我正在使用数据库来存储blob。然后我使用JPA将blob读入实体。所以基本上我有byte[]

我正在使用的库中有一个类,其构造函数采用foo(String filePath)foo(File file)

我正在使用EJB,因此我无法访问服务器文件系统。我所拥有的只是blob的二进制数据。有没有办法可以以某种方式创建一个File对象,指向EJB世界中的数据,以便我可以使用我的库?某种或包装?

2 个答案:

答案 0 :(得分:1)

虽然您不应该在EJB环境中创建文件,但更少有通过Java SE的File类与您的应用程序关联的文件夹可以创建一个临时文件,该文件将存储在用户的临时文件文件夹中。应用程序服务器进程。例如,以下代码片段创建一个临时文件,该文件将放在临时文件夹

File tempV1 = File.createTempFile("tempfile", ".tmp");
//C:\Users\JAVIER~1.ZAM\AppData\Local\Temp\file4872171473798955694.tmp

如果为临时文件指定了一个特殊文件夹,则可以将其作为参数传递,如下所示:

File tempV2 = File.createTempFile("tempfile", ".tmp",  
                                   new File("c:/server/temporal"));
//C:\server\temporal\file631043069173548312.tmp

答案 1 :(得分:-1)

你可以这样做

<form id="signupform" name="signupform" ng-submit="createUser()">
  <label for="email">Email</label>
  <input type="email" ng-model="regisUser.email" ng-minlength="3" required />

  <label for="username">Username</label>
  <input type="text" ng-model="regisUser.username" required />

  //File upload
  <input type="file" name="file" required>

  <button id="btn-signup" type="submit">Save</button>
</form>

在您调用文件对象上的方法createNewFile()之前,不会创建真实文件。