Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.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/8/design-patterns/2.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 7)中创建文件夹?_Java_Jsf 2 - Fatal编程技术网

Java 如何在服务器(Tomcat 7)中创建文件夹?

Java 如何在服务器(Tomcat 7)中创建文件夹?,java,jsf-2,Java,Jsf 2,我使用java和jsf,我想在服务器中创建一个文件夹,然后临时保存文件,然后删除它(而不是文件夹本身)。 我尝试过以下代码: boolean folderPath; folderPath = new File ("/Images").mkdir(); 但是上面的代码在我的本地磁盘中创建了文件夹。不要这样做。您永远不能保证WAR文件夹是可写的,甚至不能保证它在物理磁盘上。例如,当servletcontainer配置为将WAR扩展到内存而不是磁盘中时 因为它显然是一个临时文件,所以只需使用: 或者

我使用java和jsf,我想在服务器中创建一个文件夹,然后临时保存文件,然后删除它(而不是文件夹本身)。 我尝试过以下代码:

boolean folderPath;
folderPath = new File ("/Images").mkdir();

但是上面的代码在我的本地磁盘中创建了文件夹。

不要这样做。您永远不能保证WAR文件夹是可写的,甚至不能保证它在物理磁盘上。例如,当servletcontainer配置为将WAR扩展到内存而不是磁盘中时

因为它显然是一个临时文件,所以只需使用:

或者使用固定磁盘文件系统上的外部文件夹,其绝对路径将设置为VM参数或某些配置设置


更新:可以使用servlet显示该文件。我推测这是一个图像文件。您可以使用
在路径中设置临时文件的文件名

例如,在豆子内部:

this.filename = tempFile.getName();
然后在视图中:


应该在
/images/*
上侦听的servlet可以如下所示(在练习中省略异常检查):


对于Primefaces,我使用以下方法:

导入此文件:

导入javax.faces.context.ExternalContext

然后是主要班级:

字符串resultFolder=“newFolder”

ExternalContext extContext=FacesContext.getCurrentInstance().getExternalContext()

文件结果=新建 文件(extContext.getRealPath(“//WEB-INF//”+resultFolder.mkdir()


我可以在浏览器中输出该文件吗?当然可以。只需使用servlet并将文件名作为请求参数或pathinfo传递,或者可能将整个
文件
作为会话属性传递。servlet可以依次从中获取
文件输入流
,并将其写入响应的
输出流
,以及usu的一些头顺便问一下,你能给我一个例子吗?因为我刚刚接触Servlet,谢谢。
this.filename = tempFile.getName();
@WebServlet("/images/*")
public class ImageServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        File file = new File(System.getProperty("java.io.tmpdir"), request.getPathInfo());

        response.setHeader("Content-Type", getServletContext().getMimeType(file.getName()));
        response.setHeader("Content-Length", String.valueOf(file.length()));

        InputStream input = new FileInputStream(file);
        OutputStream output = response.getOutputStream();

        // Now write input to output the usual way.
    }

}