文件上传在web应用中是比较普遍的,相对于使用jsp等技术实现文件上传,Grails的文件上传着实让人喜爱,因为极其简单,让人看一遍就容易轻松记住!不多说,实例如下:


假设已有一个名为uploadFile的控制器,并已有相应的GSP页面

1.在gsp页面中使用Grails标签uploadForm

<g:uploadForm name="myUpload" action="saveFile">
<input type="file" name="myFile" />
<button type="submit">提交</button>
</g:uploadForm>

当然也可以使用普通的<g:form>标签,但是这样需要添加一个属性:enctype="multipart/form-data",其它与<g:uploadForm>并无不同。

2.在grais-app中创建一个控制器controllers

在这个控制器中创建一个action:saveFile

    def saveFile(){
/*获取客户端传递过来的文件,
其中getFile()中的参数是类型为file的input的name属性的值*/
def file=request.getFile("myFile")
// 获取文件的大小
println file.size
// 获取文件的类型,如image/jpeg
println file.contentType
// 获取文件的原始名称
println file.originalFilename
// 将文件存储在自己希望存放的地方以及格式
f.transferTo( new File( "d://1.jpg", f.originalFilename))
}

如果这个在很多控制器中都有使用,最好写成一个service!


Grails笔记三:完整的文件上传实例的更多相关文章

  1. PHP学习笔记--文件目录操作(文件上传实例)

    文件操作是每个语言必须有的,不仅仅局限于PHP,这里我们就仅用PHP进行讲解 php的文件高级操作和文件上传实例我放在文章的最后部分.--以后我还会给大家写一个PHP类似于网盘操作的例子 注意:阅读此 ...

  2. PHP中,文件上传实例

    PHP中,文件上传一般是通过move_uploaded_file()来实现的.  bool move_uploaded_file ( string filename, string destinati ...

  3. ExtJS:文件上传实例

    ExtJS:文件上传实例 var ext_dateFormat = 'Y-m-d H:i:s'; var dateFormat = 'yyyy-MM-dd HH:mm:ss'; var date = ...

  4. Node.js 博客实例(三)添加文件上传功能

    原教程 https://github.com/nswbmw/N-blog/wiki/_pages的第三章 上传文件眼下有三种方法: 使用 Express 自带的文件上传功能,不涉及数据库 使用 For ...

  5. 《Play for Java》学习笔记(六)文件上传file upload

    一. Play中标准方法 使用表单form和multipart/form-data的content-type类型. 1.Form @form(action = routes.Application.u ...

  6. 完整的多文件上传实例(java版)

    昨天刚刚做了一个文件列表上传,后端很简单,用 MultipartFile[] files 获取文件流数组,后端就当IO流操作就可以,似乎好像没啥好写的,但是!!!!!前端是真的糙单.要是自己写一个前端 ...

  7. Asp.net core 学习笔记 ( upload/download files 文件上传与下载 )

    更新 :  2018-01-22  之前漏掉了一个 image 优化, 就是 progressive jpg refer : http://techslides.com/demos/progressi ...

  8. Django学习笔记之Ajax与文件上传

      Ajax简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异步交互,传输 ...

  9. Nodejs学习笔记(5) 文件上传系统实例

    目录 2018.8.4更新:  MySQL可以存放几乎任何类型的数据(图片.文档.压缩包等),但这不是最好的解决方案,正常情况下都是在数据库中存放文件路径,图片.音乐.视频.压缩包.文档等文件存放在硬 ...

随机推荐

  1. angular JS中使用jquery datatable添加checkbox点击事件

    'use strict'; app.controller('DataTableCtrl', function ($scope, $compile) { $scope.selected = []; $s ...

  2. 小白也能看懂的插件化DroidPlugin原理(三)-- 如何拦截startActivity方法

    前言:在前两篇文章中分别介绍了动态代理.反射机制和Hook机制,如果对这些还不太了解的童鞋建议先去参考一下前两篇文章.经过了前面两篇文章的铺垫,终于可以玩点真刀实弹的了,本篇将会通过 Hook 掉 s ...

  3. JavaScript addEventListener 第三个参数

    先看一个完整的演示页面代码. Code <!DOCTYPE html> <html lang="zh-CN"> <head> <meta ...

  4. Java基础之接口与抽象类及多态、内部类

    final关键字 被其修饰的类,不能被继承. 被其修饰的方法,不能被覆盖. 被其修饰的变量,是一个常量,不能被修改,所以定义时必须初始化(和C++的const类似). 一般有final,会搭配stat ...

  5. 电脑只能上QQ,不能上网浏览网站怎么解决

    这个问题通常是因为网络的DNS解析出错引起的.QQ一类的聊天软件有自动的网络解析,不需要DNS便可以使用,而一般的浏览器是需要DNS解析来访问网页的.所谓DNS,即域名服务器(Domain Name ...

  6. 2017-6-4 CTF解题报告

    1.签到题 附件 扫描二维码得到 ZCTF{WELCOME_TO_20-209} 2.阿斯克的秘密 从前有个叫做阿斯克的人,他写了一句话,聪明的你能明白他写的是什么吗? 附件 int a; while ...

  7. Ubuntu虚拟机可以上网,可以ping网络,但是无法update和install,报连接不上服务器的错误解决方案:

    http://askubuntu.com/questions/711889/err-apt-get-update-on-ubuntu-14-04即使给Ubuntu配置了代理,terminal能ping ...

  8. My first_leetcode_Rever Ingeter 数字翻转java实现(办法集合)

    7. Reverse Integer Reverse digits of an integer. Example1: x = 123, return 321  Example2: x = -123, ...

  9. Java入门——(3)面对对象(下)

    关键词:  类的继承.final关键字.多态.接口.异常.包.访问控制 一.类的继承       1.类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类 ...

  10. 关于socket通信bind()返回值错误:10049

    这个问题,我差点和客户吵起来了.我的电脑确实没有问题,客户电脑却会经常出现,.今天查了下,居然是这种问题,大意了,在这里记录下. 服务器端程序开启的时候总是提示:bind错误,用WSAGetLastE ...