grails学习笔记-文件上传
2013-10-26 16:48
351 查看
第一次发表文章,多多包含,最近开始学习grails这个框架,希望能把自己学习的点点滴滴记录下来,和大家一起探讨。grails这个框架就不多说了,有机会和大家再一起探讨,今天研究了一下如何在grails中实现文件上传和下载,其实实现起来同java差不多,下面以图片上传为例。
在控制器中有两种处理文件上传的办法,如果想在领域类中保存图像,最好的选择的使用命令对象,如果是上传到文件系统,则需要访问原始的图片路径返回到上传过程的Spring MultipartHttpServletRequest对象,MultipartHttpServletRequest类有一个transferTo()方法可以将图像数据直接搬到文件中。下面上代码,无图无真相。
index.gsp:
当然你也可以用<g:uploadForm>标签,它会告诉浏览器包含文件上传,不需要特意指定enctype,接下来看看upload是如何执行的
为了接下来能显示图片,所以我把图片名字固定为a.jpg,到这里一个简单的图片上传就完成了,是不是很简单,接下来看看图片的获取显示,其实,这个过程和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) } } }
别忘了关闭输入、输出流,我就不写了,怎么样是不是很简单,如果有问题希望大家指正,如果大家有好的意见欢迎交流,谢谢
相关文章推荐
- struts2 学习笔记(三)——文件的上传和下载
- 文件上传与下载学习笔记(1)---文件上传原理及配置
- 文件上传与下载学习笔记(1)---文件上传原理及配置
- linux命令学习笔记(26):用SecureCRT来上传和下载文件
- 【日常学习笔记】PHP上传文件时权限问题~
- 【笔记】Spring MVC学习指南(十一)上传文件
- springmvc学习笔记--支持文件上传
- Javaweb学习笔记10—文件上传与下载
- Flask学习笔记:文件上传原生实现
- PHP学习笔记(9)文件上传
- PHP学习笔记5-PHP-AJAX请求、文件上传、验证码
- Selenium学习笔记(四)——上传&下载文件
- CodeIgniter学习笔记五:分页,文件上传,session,验证码
- 文件上传与下载学习笔记(2)---多文件、单文件、多个单文件函数封装
- [原创]java WEB学习笔记49:文件上传基础,基于表单的文件上传,使用fileuoload 组件
- Asp.net core 学习笔记 ( upload/download files 文件上传与下载 )
- iOS学习笔记70-使用NSURLConnection实现文件上传
- Web 在线文件管理器学习笔记与总结(19)上传文件
- JSP Servlet学习笔记——使用fileupload上传文件
- 文件上传与下载学习笔记(3)---面向对象方法实现文件上传