2011-03-17 58 views
-1

我已經編寫了jsp,servlet的代碼,用於在數據庫中上傳Doc文件。插入恢復(恢復)值(?)(文件名,目錄名稱或卷標語法不正確)。這裏是我的代碼,但我得到這樣的錯誤== java.io.FileNotFoundException:插入恢復(繼續)值(?)(文件名,目錄名稱或卷標語法不正確)。請幫助我如何刪除此錯誤?java.io.FileNotFoundException?

  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

[Servlet將文本或文檔文件發送到SQL Server 2008]的可能的重複(http://stackoverflow.com/questions/5336295/servlet-for-sending-the-text-or-document-file-到了-SQL服務器2008年) – BalusC 2011-03-17 13:12:47

回答

0

這是因爲insert into resume(resume) values(?)可能不是磁盤上文件的名稱。

pst = con.prepareStatement ("insert into resume(resume) "+ "values(?)"); 
    File re = new File("" + pst); 

您正在創建從一個""+ pstFile,這是被稱爲一個PreparedStatementtoString()結果。你有沒有把""擺脫信息編譯錯誤?

你可能在其他變量中有真實文件名。

File re = new File(theRealFileNameVariable); 
0
File re = new File("" + pst); 

請確保 「PST」 的值是一個有效的文件路徑,顯然值 「INSERT INTO簡歷(簡歷)值(?)」 不是一個有效的文件路徑

0

java.io.File類有四個(4)構造

File(File parent, String child) 
File(String pathname) 
File(String parent, String child) 
File(URI uri) 

在你的情況,你試圖傳遞給構造一個對象或鍵入java.sql.PreparedStatement你TR ying投入字符串。我沒有看到(即使你將pst轉換成字符串),pst會引用一個文件的路徑。請返回閱讀關於java.io的一些信息。