上传解决方案之一:上传处理大数据blob
uploadify+hibernate+ oracle
代码应该与mysql mssqlserver 通用 本人用的是oracle 其它没有测试
本文章专提供给使用uploadify 上传大文件处理的问题,前提是假设看本文档的人已经会使用uploadify 上文件 如果还不会使用的请看本人的uploadify 教程
1.Learner.java code
public class LearnerInfo implements java.io.Serializable {
/
private String learnerId;//学员ID
private String learnerName;//学员姓名
private byte[] photo;
// Constructors
/** default constructor */
public Learner() {
}
public String getLearnerId() {
return this.learnerId;
}
public void setLearnerId(String learnerId) {
this.learnerId = learnerId;
}
public String getLearnerName() {
return this.learnerName;
}
public void setLearnerName(String learnerName) {
this.learnerName = learnerName;
}
/**
* @return the photo
*/
public byte[] getPhoto() {
return photo;
}
/**
* @param photo the photo to set
*/
public void setPhoto(byte[] photo) {
this.photo = photo;
}
}
2.learner.xml code
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="Learner" table="LEARNER">
<id name="learnerId" type="java.lang.String">
<column name="LEARNER_ID" length="8" />
<generator class="assigned"></generator>
</id>
<property name="learnerName" type="java.lang.String">
<column name="LEARNER_NAME" length="30">
</column>
</property>
<property name="photo" type="org.springframework.orm.hibernate3.support.BlobByteArrayType">
<column name="PHOTO" >
</column>
</property>
</class>
</hibernate-mapping>
3上传java code
public void uploadImg(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 创建磁盘文件工厂
DiskFileItemFactory fac = new DiskFileItemFactory();
// 设置内存缓冲区,超过后写入临时文件
fac.setSizeThreshold(20240000);
// 创建servlet文件上传组件
ServletFileUpload upload = new ServletFileUpload(fac);
upload.setHeaderEncoding("UTF-8");
// 遍历从前台得到的文件列表
List<?> items = null;
FileItem item = null;
try {
items = upload.parseRequest(request);
for (int i = 0; i < items.size(); i++) {
item = (FileItem) items.get(i);
//fileName = "D:" + File.separator + item.getName();
// 保存文件
if (!item.isFormField() && item.getName().length() > 0) {
tempName = item.getName();
byte[] buffer = item.get();
Learner learner = new Learner();
learner.setLearnerId(“1”);
learner.setLearnerName(“学生姓名”);
learner.setPhoto(buffer );
Learnerbs.save(learner)
}
}
} catch (FileUploadException e1) {
e1.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
request.setAttribute("coachId", coachId);
request.setAttribute("learnerId", learnerId);
//response.sendRedirect("success.jsp");
//request.getRequestDispatcher("success.jsp").forward(request,response);
// 打印输出
PrintWriter out = null;
out = encodehead(request, response);
out.write("上传成功!");
out.close();
}
4.展示图片 java code
public void displayPhoto(){
String id = request.getParameter("id");
Learner learner =LearnerBS.get(id);
byte[] photo = learner.getPhoto();
if(photo==null){
return;
}
InputStream is = null;
try {
is = new ByteArrayInputStream(photo);
byte[] buffer = new byte[1024];
int len = 0;
OutputStream out = response().getOutputStream();
while((len=is.read(buffer))>0){
out.write(buffer,0, len);
}
out.close();
out.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
分享到:
相关推荐
在本示例中,我们将探讨如何使用Oracle数据库、Hibernate ORM框架以及Uploadify插件处理Blob类型的大数据,如图片或文件上传。Blob(Binary Large Object)是数据库中用于存储二进制大对象的类型,常用于存储图片、...
3. **处理上传事件**:Uploadify提供了一系列事件,如`onSelect`(文件选择后触发)、`onProgress`(文件上传进度更新时触发)和`onComplete`(文件上传完成后触发)。在这些事件回调中,可以添加自定义逻辑,比如...
在IT行业中,前端开发经常需要处理用户上传文件的需求,而"jquery+uploadify+php脚本"就是一个典型的批量上传文件的解决方案。这个标题所指的组合是基于jQuery库的Uploadify插件,配合PHP后端脚本来实现高效、便捷的...
在这个场景中,PHP主要负责接收Uploadify上传的文件,保存到服务器,并可能对图像进行进一步处理,如缩放、裁剪等。 实现流程如下: 1. **前端设置**: - 首先,在HTML中引入Jcrop和Uploadify的相关库,设置...
总之,"uploadify+jsp文件批量上传"是一种实用的技术组合,它将前端的易用性和后端的处理能力有效结合,实现了高效的文件上传功能。通过学习和实践,开发者可以将其应用到自己的项目中,提升用户体验并优化服务性能...
这里的关键是`uploadify`函数的配置,包括上传的SWF文件路径、处理文件上传的服务器端Action、取消按钮的图片路径等。 **4. Struts2 Action配置** 在Struts2中,我们需要创建一个处理文件上传的Action类,继承自`...
1. **配置Uploadify**:我们需要在JavaScript代码中设置`uploadify`的相关属性,如`uploader`指定服务器端处理文件的URL,`queueID`设置队列容器ID,`multi`设置为true启用多文件上传,`fileDataName`设置文件字段名...
Uploadify是一款基于jQuery的插件,它提供了文件上传的高级功能,包括多文件选择、进度条显示、错误处理等。在我们的Demo中,Uploadify将负责在用户选择图片后,通过异步方式将这些文件上传到服务器。Uploadify支持...
总结来说,Uploadify+Ashx的跨域上传方案结合了前端的友好界面和后端的安全处理,实现了Web应用中的文件跨域上传功能。在实际开发中,需要根据项目需求调整和完善各个部分,确保上传过程的安全性和稳定性。
代码使用Struts2框架和uploadify插架实现多文件上传功能。
在IT行业中,文件上传是网页应用中常见的功能之一,尤其在大数据时代,用户可能需要上传大量的图片、文档或视频。`jQuery Uploadify` 和 `Java` 的结合为开发者提供了一个高效且用户友好的文件上传解决方案。这篇...
Uploadify是一款广泛使用的前端插件,它使得文件上传过程更加直观、用户友好,并且支持批量上传和自定义样式,极大地提升了用户体验。 首先,我们来了解jQuery Uploadify插件。Uploadify是基于jQuery的,这意味着你...
jQuery Uploadify是一款基于jQuery的文件上传插件,它通过AJAX技术实现了无刷新的多文件上传。其主要特点包括进度条显示、文件类型过滤、自定义上传按钮等。Uploadify通过HTML5的FormData对象或Flash技术(对于不...
完整的Uploadify+Struts2使用案例,前台用jQuery的DOM技术生成隐藏的input,后台由action负责上传,上传结束后提交前台的form。再由另外一个action完成链接和其他信息的持久化工作。
《基于Uploadify与Huploadify的文件上传组件详解》 在现代Web开发中,文件上传功能是不可或缺的一部分,尤其在处理用户数据、图片分享或多媒体内容上传时。Uploadify和Huploadify是两个广泛使用的JavaScript文件...
总结起来,这个项目通过`uploadify`实现文件上传,利用Struts处理请求,结合Hibernate将文件以二进制形式存入数据库,再通过EasyUI创建用户友好的界面进行文件下载。整个流程涉及了前端交互、后端处理、数据库操作...
然后,在JavaScript中初始化Uploadify,配置参数并绑定事件处理函数,如`onSelect`(选择文件时触发)、`onUploadSuccess`(文件上传成功时触发)等: ```javascript $(function () { $('#fileUploader')....
本Demo将展示如何将`jQuery Uploadify`与Java的Servlet技术进行整合,实现在后台服务器上处理文件上传的流程。 首先,我们需要了解`jQuery Uploadify`的核心概念。Uploadify通过AJAX和Flash技术实现了无刷新的文件...
asp.net + Uploadifyv3.2 的多附件上传示例,在官网的示例中全部是php的,并且下载官网的mode到本地总是无法运行,本示例结合官网示例,重新优化结构,采用asp.net作为服务端进行处理,可以方便的示例多附件上传。
jQueryUpLoadify是一款基于jQuery的文件上传插件,它与.NET 4.0框架结合,提供了高效、便捷的批量文件上传功能。这个插件在Web开发中被广泛使用,因为它可以极大地改善用户交互体验,使得文件上传过程变得更加直观和...