1、创建文件上传的Action....
在其方法(execute())中写文件上传代码:
try {
UploadForm uploadForm = (UploadForm) form;// TODO Auto-generated method stub
//获得文件
FormFile file1=uploadForm.getFile1();
//获得webroot 文件夹的绝对路劲
String path=request.getRealPath("/");
//request.getSession().getServletContext().getRealPath("/")
FileOutputStream fos=
new FileOutputStream(path+"/"+file1.getFileName());
//保存文件
fos.write(file1.getFileData());
//关流
fos.close();
response.getWriter().print("ok");
} catch (Exception e) {
e.printStackTrace();
}
return null;
2、在jsp页面中:
1、 表单的提交方式必须为post 提交;(必须的)
2 、 给表单加上一个属性 enctype="multipart/form-data";(必须的)
3 、在formbean 加入 FormFile 类型 如 private FormFile file1;
首先, 我想告诉你的是:文件上传和hibernate没有关系 因为它只是一个和数据库交互的框架。
文件上传是java对流的操作。所以你应该从struts 或者spring上传着手。网上有很多资料。如果没有用这两个框架,也有基于文件上传的jar包(使用servlet) 网上很多资料。这是我给你的思路。
至于将路径等信息保存到数据库,这个倒是用hibernate。不用我多说了吧,它只是一个简单的insert而已。
楼主struts2上传代码会写吗?
struts2本身提供了上传拦截器,用struts2实现上传功能,并获得保存地址
<!-- 配置fileupload的拦截器 -->
<interceptor-ref name="fileupload">
获得文件存储地址(上传时指定)+文件名
调用保存方法(hibernate),将文件路径存入数据库
在一个事务中完成即可!
如:有哪块有难点,及时追问。good luck!