我已经可以将其上传了,数据库保存的是文件的路径,请问我该如何把文件本身也存进数据库呢?我用的是smartupload组件.
十分感谢!

解决方案 »

  1.   

    查找下clob,blob等字段的读写方法
      

  2.   

    图片 字段设置为image
    String   filename=request.getParameter("image");     
    FileInputStream   img=new   FileInputStream(filename);  
    String   sql="insert   into   table(id,img)   values('1',?)";     
    PreparedStatement   stmt=conn.prepareStatement(sql);     
    stmt.setBinaryStream(1,img,img.available());     
    stmt.execute(); 
    ---------------------
    为什么不存放目录呢?
      

  3.   

    那是oracle的吧,刚查到了,存储大容量(包括mp3,图片吧)可以用text和image,文件不会损坏吗?存进去的数据是按普通数据类型字段一样读取吗?还是通过下载的方式才能读呢?
      

  4.   

    我的数据库存放的是路径,而且在程序目录下的文件夹内保存了上传的文件,可毕业设计老师说还不行,怕文件被人删掉,最好还能把文件也保存进去,文件类型有视频,声音,图片,真是晕啊,他又不太了解jsp,没人问啊,其实另存到另一个文件夹不就有两份了吗?
    file.saveAs("c:\\temp\\" + myFile.getFileName(),su.SAVE_PHYSICAL);//将文件另存orfile.saveAs("/upload/" + file.getFileName());// 另存到以WEB应用程序的根目录为文件根目录的目录下以下是我存储文件路径的代码(T_Path是路径,T_Pfileext是扩展名),可以改进吗?String sql="insert into T_P (T_Pcode,T_Ptitile,T_Psize,T_Path,T_Pfileext) "+
    "values('"+strdate1+"','"+t_FileTitle+"',"+strPicSize+",'"+t"+strPicPath+"',''"+file.getFileExt()+"')";
     
      myDBBean myup = new myDBBean();
      myup.setConnection();
      myup.setQuerystatement(sql);
      myup.insertRecord();
      

  5.   

    不过image,text,ntext应该是存这些文件的吧,都用text类型可以吗?
      

  6.   

    img mp3 可以放数据库里,几M一个,放数据库里效率很低吧
    我一般上传服务器硬盘,数据库存路径
      

  7.   

    还是可以放的,那我先插如一条记录,包括路径字段,还有text字段放文件,可以实现吗?该怎么做呢?
      

  8.   

    希望老师放我一马呀,毕业设计这么严,担心毕业证啊,为什么会这样,急ing.
      

  9.   

    cattong()  DB的作用是持久化 没有数据库也是一样的。
    直接读写文件系统是直接 I0(字节流 OR字符流的形式保存 读出数据) 比数据库快很多的
    LZ您老师也太有才了  我做毕业设计时候 要把图片放在数据库中问老师要保存为什么字段结果 老师非常严肃的批评了我说数据库要存放路径
      

  10.   

    那如何存放呢?放在text字段吗?不知道如何做呀?
      

  11.   

    比较好的方法是:将图片或mp3等上传到一定的文件夹,然后在数据库保存图片或mp3的路径
      

  12.   

    像图片啦,声音啦这种资料还是保存在某目录下面啦,然后路径hash后保存进数据库不然你的数据库会变得非常臃肿
      

  13.   

    用blob或clob之类的类型存进去,存的方式和三楼说的一样,使用preparestatement进行预处理。
    String filename=request.getParameter("image");
    FileInputStream img=new FileInputStream(filename);
    String sql="insert into table(id,img) values('1',?)";
    PreparedStatement stmt=conn.prepareStatement(sql);
    stmt.setBinaryStream(1,img,img.available());
    stmt.execute(); 以字节形式读出来,最后组合成需要的对象(图片,mp3等)。
    大家不要说这个方法不好,就看你怎么用了,总的来说对象数据库是趋势,现在的关系数据库如Oracle,DB2,SQLServer等都在往对象发展,因此全部以对象形式录入数据库也是很合理的,同步,并且保证数据不会被破坏!
      

  14.   

    这个老师是sbsb!!!
    哪个无聊的服务器吃饱撑着,把视频照片音乐按二进制存到数据库里面啊!
    那效率能高么?