1.servlet/jsp+fileupload/smartupload/自己编一个实现接受文件的javabean.然后调用相关的程序,把文件存入数据库中。这也是通常的选择。
2.通过数据库的存储过程,直接用sql来操作可以实现,需要访问文件系统。见全文搜索中向数据库中存入文件的办法。
3.rmi客户/服务器的方式,由于rmi对实现的接口的参数要求是可串行化的,因此可以选用byte[]或fileupload组件中fileitem对象等,由于在rmi中通常使用双方协商好的对象类型,因此在文件传输,可选用定义一继承seriable接口的类对象,包含文件和文件的相关信息。
4.虽然ejb是不能访问文件系统,而且要求实现的接口的参数要求是可串行化的,还必须是ejb规范下的数据类型(基本的数据类型)因此不能选用java.io包下的类(非串行化)和像fileupload组件等之外的类对象(串行化)作为参数。但是在ejb内部是可以使用java.io包中的对象。通过ejb来实现把文件存入到数据库的方法:
1).用byte[]作为远程接口的参数类型.
2).用file,fileinputstream,datoutputstream来实现文件对象,
3).然后以文件对象流的形式存入数据库中。
在ejb中的实现方法:
public string upfile(byte[] filebyte,java.lang.string filename ){
try{
system.out.println("fdjkj");
file f=new file(filename);
dataoutputstream fileout=new dataoutputstream(new fileoutputstream(f));
fileinputstream fi=new fileinputstream(f);
int li=fi.read(filebyte,0,filebyte.length-1);
fileout.write(filebyte,0,filebyte.length-1);//这两句不能颠倒,上面依据是表示开始向fileinputstream中读入数据,这一句才是把byte[]中的数据读入到流中
system.out.println("fdjkj");
string dname="com.microsoft.jdbc.sqlserver.sqlserverdriver";
string conurl="jdbc:microsoft:sqlserver://159.164.176.116:1038;databasename=digital lab";
// file f1=new file(""+fds.get("fileid") );
connection con=null;
statement stm=null;
resultset rs=null;
preparedstatement ps=null;
class.forname(dname).newinstance();system.out.println("fdjkj");
con=drivermanager.getconnection(conurl,"gaolong1","831001");system.out.println("fdjkj");
string sql="insert into testejbfile values('"+filename+"',?,"+(filebyte.length-1)+")";
//string sel="select * from xinxi where changhao=215;";
//string sel="select * from custom where yuming='212';";
ps=con.preparestatement(sql);system.out.println("fdsssssjkj");
ps.setbinarystream(1,fi,(int)filebyte.length-1);
// ps.setbytes(1,b);
ps.executeupdate();system.out.println("fdjkj");
ps.close();
return "ok";
}catch(exception e){
e.printstacktrace();
return "false";
}
}
}
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器