我编写了jsp的代码,用于在数据库中上传Doc文件的servlet。
这是我的代码,但我得到的错误是这样== java.io.FileNotFoundException:insert into resume(resume)values(?)(文件名,目录名或卷标语法不正确)。请帮我怎么删除这个错误???
try
{
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
con=DriverManager.getConnection("jdbc:jtds:sqlserver://W2K8SERVER:1433/career","sa","Alpha#123" );
pst = con.prepareStatement("select * from data1 where email=? and password=?");
pst = con.prepareStatement
("insert into resume(resume) "+ "values(?)");
File re = new File("" + pst);
fis = new FileInputStream(re);
pst.setBinaryStream(3, (InputStream)fis, (int)(re.length()));
pst.setString (1,upload);
//rs = pst.executeQuery();
while (rs.next())
cnt ++;
int s = pst.executeUpdate();
if(s>0) {
System.out.println("Uploaded successfully !");
}
else {
System.out.println("unsucessfull to upload image.");
}
rs.close();
pst.close();
con.close();
}
答案 0 :(得分:0)
这是因为insert into resume(resume) values(?)
可能不是磁盘上文件的名称。
pst = con.prepareStatement ("insert into resume(resume) "+ "values(?)");
File re = new File("" + pst);
您正在File
创建""+ pst
,这是toString()
上PreparedStatement
被调用的结果。您是否放入""
以摆脱信息性编译错误?
你可能在其他变量中有真实的文件名。
File re = new File(theRealFileNameVariable);
答案 1 :(得分:0)
File re = new File("" + pst);
请确保“pst”值是有效的文件路径,显然值“插入恢复(恢复)值(?)”不是有效的文件路径
答案 2 :(得分:0)
java.io.File类有四(4)个构造函数
File(File parent, String child)
File(String pathname)
File(String parent, String child)
File(URI uri)
在您的情况下,您尝试将一个对象或类型java.sql.PreparedStatement
传递给构造函数,并尝试强制转换为String。我没有看到(即使你到达将pst转换为字符串)pst将引用文件的路径。请回过头来阅读一下java.io。
。