0

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

(varchar File_Name, Blob File_data, Varchar File_Date) を持つデータベーステーブル Files があります。そして、アップロードされたファイルを内部に保存する必要があります

私はサーブレットにこのコードを持っていました: ** ところで: "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();
            } 

Blob 属性に格納できるようにするには、uploadFile cvariable をどのタイプのデータに変換する必要がありますか?

4

1 に答える 1

2

取り消し線は、API が廃止され、それらのクラス/メソッドが期待どおりに機能しない可能性があることを意味します。

ファイルをデータベースに保存するには、コンテンツを blob ファイルにバイトとして保存する必要があります。このディスカッションを参照してください。何らかのエラーに関連していますが、OPはこれを行う方法に関するコードを投稿しました。

于 2012-05-10T21:15:52.657 に答える