如何在数据库中保存大文件。

时间:2012-05-10 21:06:41

标签: java mysql database servlets file-upload

我使用JSP表单上传和Servlet将大型文件存储在MySQL数据库中。因为我是Java的新手,所以我需要一个非常紧急的帮助。 我试图将文件存储在String值中,但是我得到了字符串索引超出边界的错误。

我有数据库表文件,其中包含(varchar File_Name,Blob File_data,Varchar File_Date)。 我需要将上传的文件存储在

我在servlet中有这个代码: ** BTW:我不知道为什么“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 cvariable转换为什么类型的数据才能将其存储在Blob属性中?

1 个答案:

答案 0 :(得分:2)

Strike through表示API已弃用,并且这些类/方法可能无法按预期工作。

将文件存储到数据库,您需要将内容存储为blob字段中的字节。见discussion。虽然它与某些错误有关,但是OP发布了如何执行此操作的代码。