primefaces 文件上传下载的配置

结合了几篇外国友人的帖子和primefaces文档:

一、上传

1、在web.xml中添加

<context-param>

<param-name>primefaces.UPLOADER</param-name>

<param-value>auto|native</param-value>

</context-param>

本人亲测commons不可用,就算加入filter

2.1 简单方式上传

<h:form enctype="multipart/form-data">

<p:fileUpload value="#{fileBean.file}" mode="simple" />

<p:commandButton value="Submit" ajax="false"/>

</h:form>

这个是针对mode=simple的上传方案,如果mode=advanced,去掉enctype="multipart/form-data"不然界面会出现错误

这里,commandButton的ajax必须是false

2.2 高级方式上传

<p:panelGrid columns="2">

<h:outputLabel for="image" value="Select Image: *" />

<p:fileUpload  fileUploadListener="#{productBean.handleFileUploadx}" mode="advanced" label="选择文件" uploadLabel="点此上传" cancelLabel="取消" allowTypes="/(\.|\/)(gif|jpe?g|png)$/"/>

<f:facet name="footer">

<p:commandButton value="Submit"  >

<f:ajax render="testimg"/>

</p:commandButton>

</f:facet>

</p:panelGrid>

3、得到byte[]

前台

<p:graphicImage id="testimg" value="#{productBean.image}" width="50" height="50" style="">

</p:graphicImage>

后台

private StreamedContent image;

get

set

public void handleFileUploadx(FileUploadEvent event) {

UploadedFile f=event.getFile();

setFile( event.getFile());

try {

InputStream stream;

stream = file.getInputstream();

byte[] bt=IOUtils.toByteArray(stream);

ByteArrayInputStream img=new ByteArrayInputStream(bt);

setImage( new DefaultStreamedContent(img,"image/jpg"));

} catch (IOException ex) {

Logger.getLogger(ProductBean.class.getName()).log(Level.SEVERE, null, ex);

}

}

这里 IOUtils是Apache的common-io在本人的资源中提供下载,当然,得到字节流之后你可以把它存入数据库,需要的时候在取出来,我这里只是展示了上传完文件之后显示上传文件的功能。

如果你想把上传的file保存成文件

InputStream stream=file.getInputstream();

FileOutputStream fos=new FileOutputStream(new File("/dd.jpg"));

int read=0;

byte[] bytes=new byte[1024];

while((read=stream.read(bytes))!=-1)

{

fos.write(bytes,0,read);

}

二、下载

前台

<p:commandLink value="Download" ajax="false">

<p:fileDownload value="#{fileBean.downfile}"/>

</p:commandLink>

后台

初始化的时候

InputStream stream = this.getClass().getResourceAsStream("./ok.png");

setDownfile(new DefaultStreamedContent(stream, "image/jpeg","dx.jpg"));

这样,就可以把上传资源以二进制的方式存入数据库,需要下载的时候,在从数据库中取出以提供下载。

三、实体类的二进制表示

@Lob

private byte[] file;

set

get

时间: 2024-12-29 23:09:58

primefaces 文件上传下载的配置的相关文章

张明贵-Linux文件上传下载及sCRT配置批量管理功能

[讲课:互动,用提问的方式来吸引听众的注意力,听众吸收最大化] 大学是在许昌学院读的,在我看来,不干念PPT的老师就是好讲师,因为大部分任课老师自顾自讲,没有互动,传授的知识我们只是被动的听,没有引导听课者的思考,再此吐槽一下,哈哈!我还是真心希望我的母校越来越好. 文件的上传下载 rz 上传 rz命令不存在 [[email protected] ~]# rz -bash: rz: command not found 安装 lrzsz(需要联网或配置yum源) yum install lrzsz

文件上传下载—servlet API实现

servlet API实现文件上传下载需要的jar包: UploadServlet.java package com.ymw.web.servlet; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.List; import java.util.UUID; import javax.servl

Hadoop之HDFS原理及文件上传下载源码分析(下)

上篇Hadoop之HDFS原理及文件上传下载源码分析(上)楼主主要介绍了hdfs原理及FileSystem的初始化源码解析, Client如何与NameNode建立RPC通信.本篇将继续介绍hdfs文件上传.下载源解析. 文件上传 先上文件上传的方法调用过程时序图: 其主要执行过程: FileSystem初始化,Client拿到NameNodeRpcServer代理对象,建立与NameNode的RPC通信(楼主上篇已经介绍过了) 调用FileSystem的create()方法,由于实现类为Dis

.Net Core 图片文件上传下载

当下.Net Core项目可是如雨后春笋一般发展起来,作为.Net大军中的一员,我热忱地拥抱了.Net Core并且积极使用其进行业务的开发,我们先介绍下.Net Core项目下实现文件上传下载接口. 一.开发环境 毋庸置疑,宇宙第一IDE VisualStudio 2017 二.项目结构 FilesController 文件上传下载控制器 PictureController 图片上传下载控制器 Return_Helper_DG 返回值帮助类 三.关键代码 1.首先我们来看Startup.cs

SpringMVC文件上传下载

在Spring MVC的基础框架搭建起来后,我们测试了spring mvc中的返回值类型,如果你还没有搭建好springmvc的架构请参考博文->http://www.cnblogs.com/qixiaoyizhan/p/5819392.html 今天我们来讲讲spring mvc中的文件上传和下载的几种方法. 首先附上文件目录->我们需要配置的我做了记号-> 一.文件上传 首先为了方便后续的操作,以及精简代码,我们在Utils包下封装一个文件上传下载的帮助类: Files_Helper

Struts2学习之文件上传/下载&amp;ValueStack(三)

简介 今天是学习Struts2第三天,也算struts2准备前奏告一段落,提升部分只能在后期深入了解,多看源码,多参阅资料.今天所学的知识点文件上传.下载/ValueStack&OGNL/Struts2标签 文件上传/下载 文件上传简介 a). 企业常用文件上传技术 : jspSmartUpload(主要应用 JSP model1 时代) . fileupload (Apache commons项目中一个组件). Servlet3.0 集成文件上传 Part类 b). Struts2 对文件上传

28、java文件上传下载、邮件收发

文件上传下载 前台: 1. 提交方式:post 2. 表单中有文件上传的表单项: <input type="file" /> 3. 指定表单类型: 默认类型:enctype="application/x-www-form-urlencoded" 文件上传类型:multipart/form-data FileUpload 文件上传功能开发中比较常用,apache也提供了文件上传组件! FileUpload组件: 1. 下载源码 2. 项目中引入jar文件

NSURLSession(Get &amp; Post,JSON、XML数据解析,文件上传下载)

NSURLSession(Get & Post,JSON.XML数据解析,文件上传下载) 一.NSURLSession概述 NSURLSession是iOS7中新的网络接口,支持后台网络操作,除非用户强行关闭. NSURLSession使用步骤: 1. 新建NSURLSessionConfiguration,用于NSURLSession的配置 2. 新建NSURLSession 3. 新建NSURLSessionTask对象 4. 执行task 其中NSURLSessionConfigurati

webservice文件上传下载

使用DataHandler实现webservice的文件上传下载 服务端代码: package com.hello.weChat.controller; import javax.activation.DataHandler; import javax.activation.FileDataSource; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io