最近正在使用Play框架搭建项目,做到图片上传部分有一些问题,所以记录一下解决情况

1. Play框架的文件上传简介

Play框架处理了HTTP文件上传,我们只需要调用就好了。上传的图片会首先缓存在tmp目录中,然后会在data/attachments/目录下生成一个图片文件,文件名的形式为一串UUID但是没有后缀名。

2. Models创建

Play框架利用play.db.jpa.Blob类型来存储图片,所以Models中用于图片上传需要有两个成员变量:
1.用于保存文件名的String
2.用于保存图片的Bolb


@Entity(name = "houses")
public class Houses extends Model {// 主图public String mainimg;//主图的Boldpublic Blob mainimgblob;
}

3. 图片上传

<!--上传图片-->
<label class="back-upbtn color1"><i class="bg w-upimg-ico1"></i>本地上传<input type="file" id="file_upload" name="mainimgFile">
</label>
public static void publish( File mainimgFile) throws FileNotFoundException {// ************主图文件上传开始****************// 获取上传文件的名称houses.mainimg = mainimgFile.getName();houses.mainimgblob = new Blob();houses.mainimgblob.set(new FileInputStream(mainimgFile),MimeTypes.getContentType(mainimgFile.getName()));// ************主图文件上传结束*************************index();
}

注意: 页面file的name要和controller的参数一致

4. 图片显示

#{list items:house, as:'house'}<img title="${house.mainimg}" src="@{housePhoto(house.id)}">#{/list}
/** 跳转到图片上传测试页面*/public static void totest() {Houses house = new Houses();house.id = (long) 12;//传一个house,house里保存了id,mainimg和mainimgblobrender("newhouse/test.html",house);}/** 图片显示*/public static void housePhoto(long id) {final Houses house = Houses.findById(id);notFoundIfNull(house);response.setContentTypeIfNotSet(house.mainimgblob.type());renderBinary(house.mainimgblob.get());}

向页面传递一个house,调用图片显示的方法就能获取house里面的blob,然后就能显示图片了

还可以参考官方示例:
http://www.jianshu.com/writer#/notebooks/8096021/notes/7355251/preview

Play框架文件上传相关推荐

  1. 雷林鹏分享:codeigniter框架文件上传处理

    CodeIgniter 框架input表单的重新填充,主要是针对text.radio.checkbox.select等input表单,那么对于文件上传表单file该如何处理呢? 自己的处理方式: // ...

  2. 使用php框架文件上传,Laravel框架文件上传功能实现方法示例

    本文实例讲述了Laravel框架文件上传功能实现方法.分享给大家供大家参考,具体如下: 以Laravel 5.2.45 框架为主,进行文件上传功能的实现如下: 实现步骤: (1). 配置文件修改 打开 ...

  3. java spring框架文件上传_spring系列---Security 安全框架使用和文件上传FastDFS

    1.Spring Security框架入门 1.1 Spring Security简介 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框 ...

  4. Play框架文件上传Upload、FileUpload类使用详解

    最近做一个前后台分离的项目,要用到前端页面传递文件对象给后端,就研究了一下框架中自带的类Upload接口.FileUpload类. 1. 后端的控制器能够接收到play.mvc.Http.Reques ...

  5. DiskFileUpload + BeanUtils 轻松实现无框架文件上传表单取值

    文件上传中form表单的enctype="multipart/form-data"  为二进制文件传输 在struts2中 表单取值比较简单  因为框架已经帮我们做好的表单域的取值 ...

  6. html上传文件框架,文件上传 - FastAdmin框架文档 - FastAdmin开发文档

    文件上传 最后更新时间:2021-01-15 17:29:11 FastAdmin支持将文件.图片.视频.压缩包等文件快速的上传至本地服务器或云存储,同时支持云存储直传模式和服务器进行中转模式. 你可 ...

  7. CI框架文件上传+多文件上传+文件下载

    代码中的logMessage()和Directory()是自己封装的记录日志和递归创建文件夹助手函数 注意修改!!! 点击查看:Directory()    logMessage() <?php ...

  8. tp框架文件上传七牛服务器,TP5开发 - 七牛云图片上传方法

    1.config.php配置文件里配置七牛云密钥等 里面 secretKey accessKey domain bucket对应换成自己七牛云申请的, 步骤: (1)七牛云注册成功后-对象存储申请10 ...

  9. 闲来无事,探究一番若依框架文件上传下载实现原理

    前端部分 若依已经封装好了图片和文件上传组件,参照官方文档使用就行 1. 图片上传 <template><div class="component-upload-image ...

  10. ruoyi框架文件上传之后端代码测试及打印日志

    若依提供file上传工具类(可上传文件.图片等),有三个实现类,根据自己的需求选择,该功能可以实现用户上传的文件被存储到相应的磁盘上,并且返回对应的文件路径,以便后续访问下载. 测试: ruoyi打印 ...

最新文章

  1. MasterPage,Page 2者之间事件的执行顺序
  2. NoSQL架构实践(二)——以NoSQL为主
  3. 不使用注解和使用注解的web-service-dao结构
  4. 在护卫神上部署javaWeb项目,已经测试通过
  5. lableimg闪退_CV学习笔记(二十五):数据集标注与制作
  6. dnf加物理攻击的卡片有哪些_DNF:节日宝珠之外百分比神器附魔,拍卖行100w,实用不氪金...
  7. golang中包互相引用的解决方法
  8. c++时间函数及转换
  9. spring 事物配置几种
  10. Map与Json的相互转化
  11. 线性时间选择(TOP K)
  12. 跨平台开发实践之Flutter
  13. matlab设计椭圆低通滤波器,基于MATLAB的椭圆数字低通滤波器设计.doc
  14. Cholesky分解
  15. wampserver安装好后相关的设置和在不同的电脑上测试
  16. C语言编程>第二十周 ② 下列给定程序中,函数fun的功能是:求出数组中最大数和次最大数,并把最大数和b[0]中的数对调、次最大数和b[1]中的数对调。
  17. Debian10英语环境安装搜狗输入法
  18. 华为云在Linux ECS上使用obsutil通过内网访问OBS
  19. python创建excel新的表格_python创建Excel表格并添加工作表
  20. 负基础也能搞懂之“Gauss消元法的MATLAB实现”

热门文章

  1. [单位] 常用单位换算表大全
  2. 【密码学相关】常用的期刊,会议,实验室
  3. 基于C# WinForms窗体——飞机大战
  4. Alexa 世界排名推进工具--阿雷克斯(转)
  5. 企业域名和企业邮箱究竟有什么关系?
  6. 垃圾分类-特别是有害垃圾
  7. 二元二次方程例题_二元二次方程组解法例题
  8. LayUI的后台管理模板
  9. 4条地铁线,乘船到西站!杭州西站枢纽综合交通规划设计方案出炉
  10. php贴吧系统,PhpSay 开源贴吧系统 v2.1