hibernate文件上传
① 使用java hibernate+struts做图片上传,但是在选择文件的时候如何限定图片的格式
struts 可以直接控制文件类型和最大上传文件的大小。配置一下struts.xml即可。
② struts+hibernate 怎么将上传文件的名字,路径,大小存入mysql数据库,最好有详细代码的,
①使用struts2的上传jar包,commons-fileupload.jar
②配置struts配置文件,在action下配置上传文件的拦截器,例
<action name="uploadAction" class="com.action.UploadAction ">
<result name="success">
index.jsp
</result>
<interceptor-ref name="fileUpload">
<param name="allowedTypes"></param>
</interceptor-ref>
<interceptor-ref name="defaultStack" />
</action>
③用action处理上传文件(下面有例子UploadAction.java)
④将路径和大小使用Hibernate存入数据库。
下面是上传的action类
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Date;
import org.apache.struts2.ServletActionContext;
public class UploadAction extends BaseAction {
public UploadAction() {
super("");
}
private static final long serialVersionUID = -7091926458432816740L;
private static final int BUFFER_SIZE = 16 * 1024;
// 使用File数组封装多个文件域对应的文件内容
private File[] file;
// 使用字符串数组封装多个文件域对应的文件名
private String[] fileFileName;
// 接受依赖注入的属性
@SuppressWarnings("unused")
private String savePath;
private String path;
// 结果显示消息
private String msg;
// 只用这个方法也可以实现多图片上传功能
public String execute() throws Exception {
System.out.println(ServletActionContext.getRequest().getSession()
.getServletContext().getRealPath("/"));
// 取得需要上传的文件数组
File[] files = this.getFile();
// 遍历每个需要上传的文件
for (int i = 0; i < files.length; i++) {
fileFileName[i] = i + new Date().getTime()
+ getExtention(fileFileName)[i];
// 以服务器的文件保存地址和原文件名建立上传文件输出流
FileOutputStream fos = new FileOutputStream(getSavePath()
+ "upload/img\\" + getFileFileName()[i]);
System.out.println(getSavePath() + "upload\\img\\"
+ getFileFileName()[i]);
path = "/upload/img/" + getFileFileName()[i];
// 以每个需要上传的文件建立文件输入流
FileInputStream fis = new FileInputStream(files[i]);
// 将每个需要上传的文件写到服务器对应的文件中
byte[] buffer = new byte[BUFFER_SIZE];
int len = 0;
while ((len = fis.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
}
//HttpServletRequest request = ServletActionContext.getRequest();
//String paths = request.getContextPath();
//path = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+paths+"/";
this.msg = "上传成功!";
return SUCCESS;
}
// 获得每个文件的扩展名
public String[] getExtention(String[] fileNames) {
String[] extentions = new String[fileNames.length];
for (int i = 0; i < extentions.length; i++) {
int pos = fileNames[i].lastIndexOf(".");
extentions[i] = fileNames[i].substring(pos);
}
return extentions;
}
public File[] getFile() {
return file;
}
public void setFile(File[] file) {
this.file = file;
}
public String[] getFileFileName() {
return fileFileName;
}
public void setFileFileName(String[] fileFileName) {
this.fileFileName = fileFileName;
}
public String getSavePath() {
return ServletActionContext.getRequest().getSession()
.getServletContext().getRealPath("/");
}
public void setSavePath(String savePath) {
this.savePath = savePath;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
}
③ struts2 spring hibernate实现图片上传,数据库保存路径
struts2有专门的拦截器进行上传工作,
1.下载struts2上传包commons-fileupload-1.2.jar
2.在action中接收并处理文件
3.在struts.xml中对应的action中进行配置上传拦截器
4.在server层中写业务处理操作
5.层写数据库插入语句
有什么不清楚的可以网络Hi我!~good luck!
具体代码,看我下面给你的参考地址!~
④ 用struts2+hibernate4做个文件上传,出错了,说找不到指导定的路径,在webcont
这种问题最好把代码贴出来。
你这图片很模糊啊。
⑤ struts2+Hibernate上传图片,如何实现图片可以放在服务器上;数据库保存图片路径。
楼主struts2上传代码会写吗?
struts2本身提供了上传拦截器,用struts2实现上传功能,并获得保存地址
<!-- 配置fileUpload的拦截器 -->
<interceptor-ref name="fileUpload">
获得文件存储地址(上传时指定)+文件名
调用保存方法(Hibernate),将文件路径存入数据库
在一个事务中完成即可!
如:有哪块有难点,及时追问。good luck!
⑥ Spring mvc+Hibernate 上传和下载 项目环境 myEplice+SpringMVC+hibernate
数据库里保存的只是文件在服务器上的地址,上传时把文件保存在服务器上,同时设置保存的目录,然后把目录信息保存到数据库中。
⑦ hibernate上传文件的时候使用clob,代码如下 Clob clob = Hibernate.createClob(new tring(FormFile.getFi
1. 查看数据库使用的字符集,默认的应该是latin
2.对FormFile.getData()返回的string 进行转码,格式应该和数据库的字符集一致(比如,数据库设计你数据gb2312,那么对string转换编码时候,也使用gb2312)
确定1,2 两点,你的数据库就不会乱码了,但愿我的回答能解决你的问题
⑧ spring+spring mvc+ hibernate框架里怎么实现图片的上传,下载,展示功能
这个嘛 只和SpringMVC有点关系。 前端提交的文件,由springmvc拦截进行处理。
您可以使用上传插件。比如网络上传插件:Web Uploader。
怎么用的话,官网有Demo。也有API文档,可以自行查阅。
当然不用插件的话,也可以自己做个简单的,用Form表单提交到后台,后台对文件进行保存,展示的话直接用<img src='xxx路径'>。您可以自己组织语言网络搜索一下代码怎么写。
上传文件实际上就是传输一些数据到后台,然后使用java把这些数据保存到硬盘上,前端直接根据路径来进行访问。