图片,word,text文件在数据库中是不能以varchar2类型存储的,在orca中以clob,blob类型存储.在SqlServer中以img,txt类型存储.把附件存储在数据库中的好处是附件不容易丢失,不过要写入数据库,然后在读出来就有点不方便了.难道一定要把附件存储在数据库中?
可以把附件的相对地址存储在数据库中.附件真真保存在文件系统中.这样很容易读出来:
Myproject工程下webroot下有一个目录picture专门用来存储图片
数据库中有一字段tPath存储相对路径如:String rpath=/picture/mypicture20070905.jpg
jsp中:
<a href="<%url%>"><img width=220px height=170px src="<%repath%>"></a>//可以显示
<a href="<%world文档所在相对路径%>">附件一</a>//点击右键保存可以下载
如何上传附件到web服务器picture目录下
DiskFileUpload fu = new DiskFileUpload();
fu.setSizeMax(10000000);
fu.setSizeThreshold(4096);
List fileItems = fu.parseRequest(request);
Iterator iter = fileItems.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next(); //item.isFormField()忽略其他是文件域的所有表单信息
if (!item.isFormField()) {
String name = item.getName();
long size = item.getSize();
if((name==null||name.equals("")) && size==0)
continue;
String mpath=application.getRealPath("/picture");//获取当前网页绝对路径
String fileseparator=System.getProperty("file.separator");
item.write(new java.io.File(mpath + fileseparator+rname));//图片所在web服务器绝对路径
}