2012-05-10 16 views
0

私はJSPフォームを使用してアップロードし、サーブレットはMySQLデータベースに大容量ファイルを格納しています。私はJavaが一般的ではないので、本当に緊急の助けが必要です。 ファイルをString値に格納しようとしましたが、文字列インデックスが境界外にあるというエラーが発生しました。データベース内に大きなファイルを保存する方法。

私は(varchar File_Name、Blob File_data、Varchar File_Date)を持つデータベーステーブルファイルを持っています。ところで **:: と私は、サーブレットでこのコードを持っていた

内部にアップロードされたファイルを保存する必要がある「DiskFileUpload、parseRequestは」取り消し線を持つなぜ私は見当がつかない?

try { 
     InputStream uploadedFile = null; 

     <strike>DiskFileUpload</strike> fu = new </strike>DiskFileUpload</strike>(); 
     // If file size exceeds, a FileUploadException will be thrown 
     fu.setSizeMax(10000000); 

     List fileItems = fu.<strike>parseRequest</strike>(request); 
     Iterator itr = fileItems.iterator(); 

     while (itr.hasNext()) { 
      FileItem fi = (FileItem) itr.next(); 

      //Check if not form field so as to only handle the file inputs 
      //else condition handles the submit button input 
      if (!fi.isFormField()) { // If the form fiel is a file 
       uploadedFile = fi.getInputStream(); 
      } 

uploadFile変数をBlob属性に格納するにはどのようなデータを変換する必要がありますか?

答えて

2

ストライクスルーAPIは推奨されておらず、これらのクラス/メソッドは期待どおりに機能しない可能性があります。

データベースにファイルを格納する場合は、内容をblobファイルのバイトとして格納する必要があります。このdiscussionを参照してください。それは何らかのエラーに関連していますが、OPはこれを行う方法に関するコードを投稿しました。

+0

この問題を解決するにはどうすればよいですか? – Lujain

関連する問題