grails学习笔记-文件上传
来源:互联网 发布:网络存储服务器 编辑:程序博客网 时间:2024/04/30 02:28
第一次发表文章,多多包含,最近开始学习grails这个框架,希望能把自己学习的点点滴滴记录下来,和大家一起探讨。grails这个框架就不多说了,有机会和大家再一起探讨,今天研究了一下如何在grails中实现文件上传和下载,其实实现起来同java差不多,下面以图片上传为例。
在控制器中有两种处理文件上传的办法,如果想在领域类中保存图像,最好的选择的使用命令对象,如果是上传到文件系统,则需要访问原始的图片路径返回到上传过程的Spring MultipartHttpServletRequest对象,MultipartHttpServletRequest类有一个transferTo()方法可以将图像数据直接搬到文件中。下面上代码,无图无真相。
index.gsp:
<form action="${createLink(action: 'upload')}" method="post" enctype="multipart/form-data"> <input type="file" name="savedFileName"> <input type="submit" value="上传"> </form>当然你也可以用<g:uploadForm>标签,它会告诉浏览器包含文件上传,不需要特意指定enctype,接下来看看upload是如何执行的
def upload={ def f=request.getFile("savedFileName") def fileName=f.originalFilename def savedFileName="a"+"${fileName[fileName.lastIndexOf('.')..-1]}" def path=servletContext.getRealPath("upload")+"/"+savedFileName if (!f.empty){ f.transferTo(new File(path)) }else{ flash.message="file can not be empty!" } redirect(action: "index") }为了接下来能显示图片,所以我把图片名字固定为a.jpg,到这里一个简单的图片上传就完成了,是不是很简单,接下来看看图片的获取显示,其实,这个过程和java的基本一致
<img src="${createLink(action:'showImg' )}">这是页面用来获取图片的标签,接下来是执行显示的方法
def showImg={ def file=new File(servletContext.getRealPath("upload")+"/a.jpg") def fis,buff,out if (file.exists()){ fis=new FileInputStream(file) buff=new BufferedInputStream(fis) out=response.getOutputStream() byte[] b=new byte [1024] int i=0 while((i = buff.read(b))!=-1){ out.write(b,0,i) } } }别忘了关闭输入、输出流,我就不写了,怎么样是不是很简单,如果有问题希望大家指正,如果大家有好的意见欢迎交流,谢谢
- grails学习笔记-文件上传
- grails上传文件
- grails文件上传
- Grails 文件上传
- grails文件上传
- Grails学习笔记1
- Grails学习笔记2
- Grails学习笔记3
- Grails学习笔记4
- grails学习笔记
- grails学习笔记
- grails学习笔记-1、grails概述
- Grails学习笔记(1)
- Grails学习笔记(2)
- grails 文件的上传和下载
- grails ckeditor上传文件,中文名称乱码解决方法
- [PHP]文件上传学习笔记
- PHP学习笔记:文件上传
- Day09_变量~函数
- 线性判别分析(Linear Discriminant Analysis, LDA)算法分析
- OCP-1Z0-053-V12.02-20题
- 善用eclipse模板功能,有效提高編碼效率
- 把文件存储到sdcard中
- grails学习笔记-文件上传
- cclayer的区域
- 主题模型-LDA浅析
- 数据库命名规范(表、字段名)
- Day10_函数形参及文件操作
- 监控ContentProvider的数据改变
- Day11_递归、变量生命周期及作用域
- POJ 2947 Widget Factory
- 红黑树(red_black_tree)的c语言实现