我正在尝试将文件上传到数据库(特定的.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();
}
}
答案 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();
}
}