当前位置: 首页 > 知识库问答 >
问题:

使用jsf 2.2和glassfish 4上传文件。找不到文件路径错误

蒋波光
2023-03-14

这是我得到的错误:

Java语言io。FileNotFoundException:C:\Users\Owner\AppData\Roaming\NetBeans\7.3.1\config\GF3\domain1\generated\jsp\uploadRamki\data\images。jpg(系统找不到指定的路径)

这是我的后盾豆:

package beans;

import java.io.IOException;
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;
import javax.servlet.http.Part;

@Named(value = "demoBean")
@SessionScoped
public class DemoBean implements Serializable {

    private Part file1;

    public Part getFile1() {
        return file1;
    }

    public void setFile1(Part file1) {
        this.file1 = file1;
    }

    // getters and setters for file1 and file2
    public String upload() throws IOException {
        file1.write("c:/data/" + getFilename(file1));
        return "success";
    }

    private static String getFilename(Part part) {
        for (String cd : part.getHeader("content-disposition").split(";")) {
            if (cd.trim().startsWith("filename")) {
                String filename = cd.substring(cd.indexOf('=') + 1).trim()
                    .replace("\"", "");
                return filename.substring(filename.lastIndexOf('/') + 1)
                    .substring(filename.lastIndexOf('\\') + 1); // MSIE fix.
            }
        }
        return null;
    }
}

共有1个答案

司迪
2023-03-14

如果您这样做part.write它将尝试在运行glassfish的临时目录中写入。

尝试:

        InputStream input = file1.getInputStream();
        FileOutputStream output = new FileOutputStream(URL_FILES + file1.getSubmittedFileName());
        byte[] buf = new byte[1024];
        int len;
        while ((len = input.read(buf)) > 0) {
            output.write(buf, 0, len);
        }
        input.close();
        output.close();
 类似资料:
  • 这是因为google不支持servlet API3.0。我真的现在找不到解决办法。运行PrimeFaces3.5不是一个选项,因为该项目使用JSF2.2,而2.2与PrimeFaces3.5不兼容。 这个主题的一个有用的评论:如何使用PrimeFaces p:FileUpload?从未调用侦听器方法或UploadedFile为空 更新:自从PrimeFaces4.x之后,当与JSF2.2和Serv

  • 我下载并反编译了minecraft插件的jar文件,并通过创建一个新的java项目Import将其添加到eclipse中 这导致了: 之后,我更改了一行代码,然后尝试导出它。 我不知道我该怎么做来解决这个问题。请帮忙。

  • 我一直在Debian9上测试我的Tomcat8设置。在尝试通过Tomcat8 Manager部署helloServlet WAR文件之前,一切似乎都很好。我按照这里的说明创建了一个非常简单的示例程序。 这意味着war文件位于服务器上的某个位置,但路径对我来说是未知的。

  • 问题内容: 我在JBoss 4.3-eap上部署带有捆绑的war,jar和配置文件(.properties文件)的耳朵时遇到问题。这是我的耳朵结构: 我的jboss-app.xml中包含以下内容: 我的application.xml看起来像这样: 基本上,在部署耳朵时,我遇到了一个问题,其中我的一场大战无法在文件(r)中找到类。我认为这是由于战争没有找到该库,即使它在文件夹/ classpath中

  • 我正在尝试让MS Bot builder示例在mac上运行,使用VS Preview。每次尝试运行应用程序时,我都会得到一个错误500,并且:

  • 我试图用依赖项混淆jar(尽管如果我将常规的单个jar设置为infle,同样的问题也会影响)。 我使用的是Java8,但我必须使用更新版本的Proguard和Proguard Maven插件,因为它涵盖了一些来自更高版本的jar依赖项(否则我会遇到“不支持的主要-次要版本”问题)。 当执行“mvn clean install”时,执行该步骤,但我得到一个“在pluginArtifacts中找不到p