我可以使用FileInputStream而不在开头给它一个路径

时间:2015-05-25 09:51:09

标签: java mysql jdbc processing fileinputstream

我正在尝试将文件上传到数据库(特定的.mp4文件)。但是当我运行我的代码时,尚未选择文件路径,因为在程序中弹出一个窗口,您可以在其中选择要上载的文件。有没有办法实现这个目标?

我在FileInputStream中遇到的问题是它在我的程序开始时要求一个文件路径,但此时路径仍然不确定。

问候Pygesux

这是我尝试插入db

的地方
public void draw() {
    open.draw();
    openText.draw();
    if (video != null) {
        upload.draw();
        uploadText.draw();
    }
}
public void mouseClick() {
    if (open.mouseOverMe()) {
        selectInput("Select a file to process:", "fileSelected");
    } else if (upload.mouseOverMe()) {
        uploadFile();
    }
}
public void fileSelect(File selection) {
    video = selection;
}
public void uploadFile() {
    try {
        con = database.getConnect();
        java.sql.PreparedStatement statement = con.prepareStatement("INSERT INTO filmpje (filmpje) VALUES (?)");
        FileInputStream input = new FileInputStream(video);
        statement.setBlob(1, input);
        statement.executeUpdate();
    }
    catch (SQLException e) {
        e.printStackTrace();
    }
}

2 个答案:

答案 0 :(得分:0)

为什么在选择路径后不创建FileInputStream?

创建一个方法,获取路径,然后创建FileInputStream,并执行其他工作。在您知道路径之后,在用户输入之后调用此方法,并通过按下按钮/输入接受(这是您的应用程序逻辑)。

答案 1 :(得分:0)

我认为您正在尝试使用selectInput()正确吗?参考示例不是很清楚。当用户选择文件时,程序继续运行,因此如果您尝试运行需要文件名的代码,则会出错。这是一个测试文件是否已设置的示例。您需要根据自己的特殊需求进行更新:

String input;


void setup() {
  size(500,200);

  selectInput("Select a file...", "fileSelector");
}


void draw() {
  background(255);

  fill(0);
  noStroke();
  if (input == null) {
    text("No file selected.", 20,height/2);
  }
  else {
    text(input, 20,height/2);
  }

}

void fileSelector(File selection) {
  if (selection == null) {
    // window closed or user hit cancel button
  }
  else {
    input = selection.getAbsolutePath();
  }
}