`
zhangyu_2100
  • 浏览: 2171 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

grails实现文件的上传和下载

阅读更多
以下是我实现的视频的上传和下载(上传中我去了几个字段,但大体思路是这样的)VideoController.groovy

def upload = {
  if(request.method=="POST"){
def uploadedFile = request.getFile('myFile');
if(uploadedFile&&!uploadedFile.empty) {
def name= uploadedFile.originalFilename;
videosInstance.videoPath="D://video/"+name;
  uploadedFile.transferTo(new java.io.File(videoPath));
if(!videosInstance.hasErrors() && videosInstance.save()){
flash.message = "<font color='red'>视频上传成功!</font>"
}
}
else
{

         flash.message = "上传视频失败!";
render(view: 'upload',model:[videosInstance:videosInstance,id:params.id])
return;
}
}

def download={
       
       
        def vid=params.id;
        def videoInstance = Video.get( params.id );
       
        def fileName=videoInstance.name;
        def name=new String(fileName.getBytes("UTF8"),"ISO8859-1")
       
        def filepath = videoInstance.videoPath+fileName+"."+ videoInstance.videoType
       
        def out =null 
             def inputStream  = new FileInputStream(filepath)  
                 response.setHeader("Content-disposition", "attachment; filename="+name+".flv");

       response.setHeader("Content-Length","${inputStream.available()}");
                 response.setContentType("application/octet-stream");
                 response.contentType = "application/x-rarx-rar-compressed"; 
        try{    
                out = response.outputStream  
                 byte[] buffer = new byte[1024]  
                 int i = 0 
                 while ((i = inputStream.read(buffer,0,buffer.length)) != -1) {  
                     out.write(buffer, 0, i)  
                 }  
                 def file = Video.findById(vid)  
                 //file.setCount(file.count+1)  
                 //file.save()
                 file.downCount++
                 file.save()
                 out.flush()
               
        }     
                 
                
                 catch (Exception e) {
               
                // println "取消下载";
               
              e.printStackTrace()

               
               } 
                 finally {
                if(out!=null)
               
                try{
                out.close();
               
                 if(inputStream!=null)
                inputStream.close() ;
                }
                catch(Exception e){
               
                // println "关闭IO异常";   
               
               
                }
                  
                
                 }
             }  
1
0
分享到:
评论

相关推荐

    grails中的上传,下载

    综上所述,Grails框架下的文件上传和下载功能,虽然基于简单的工具类和页面交互实现,但背后涉及到对HTTP协议的理解、文件I/O操作以及安全性考量。熟练掌握这些技巧,对于提升Web应用程序的功能性和用户体验至关重要...

    Grails结合uploadify上传文件的简单代码

    在本文中,我们将深入探讨如何在Grails框架中结合uploadify插件实现文件上传功能。Grails是一款基于Groovy语言的、高效的Web应用开发框架,它简化了Java平台上的开发流程。uploadify则是一个JavaScript库,它允许...

    grails 文档

    Grails 支持多语言环境,通过i18n资源文件,轻松实现应用的国际化和本地化。 11. **模板引擎与标签库** GSP(Groovy Server Pages)支持自定义标签库,使得视图层逻辑更加清晰,同时提供了内置的标签,如`g:form`...

    Grails基础教程.pdf

    - **处理文件上传**:实现文件上传功能。 - **上传到文件系统**:将文件保存到文件系统中。 - **从数据库中递交相片**:将图片数据存储到数据库中。 **7.6 通过过滤器拦截请求** - **编写第一个过滤器**:创建一个...

    Grails企业web应用开发与部署

    3. 部署:将WAR文件上传至服务器的Web容器目录下,如Tomcat的webapps目录,然后启动或重启容器。 4. 配置:根据应用需求,可能需要配置环境变量,如数据库连接信息、应用日志路径等。 5. 监控和优化:部署后,可以...

    grails脚手架2次优化

    你可以修改模板文件,引入CSS库如Bootstrap来美化界面,或者利用jQuery插件增强交互性,例如文件上传、日期选择等。 3. **调整模板逻辑**:在Grails中,模板文件使用Groovy模板语言编写,允许直接嵌入Groovy代码。...

    grails 中文第二版

    ### Grails框架中文第二版...- 支持上传文件,简化了文件上传逻辑。 - 支持命令对象,用于封装复杂的表单数据。 - 支持处理重复的表单提交,防止恶意操作。 - 支持简单类型转换器,用于将字符串转换成特定的数据类型。

    grails-fck-editor-0.3.zip_grails_grails-fck-editor

    标题中的"grails-fck-editor-0.3.zip_grails_grails-fck-...对于使用Grails开发的Web应用,这个插件可以帮助实现用户友好的富文本编辑功能,同时需要注意描述中提及的安全问题,确保已修复相关漏洞,防止非法文件上传。

    Grails权威指南

     7.10 处理文件上传  7.10.1 使用multipart请求  7.10.2 上传和数据绑定  7.11 本章小结 第8章 groovycservercpages  8.1 基础知识  8.1.1 理解模型  8.1.2 页面指令  8.1.3 ...

    swfupload上传文件

    SWFUpload是一个流行的JavaScript库,专门用于在网页上实现文件上传功能。它利用Flash技术来克服HTML表单上传文件时的一些限制,如无法多文件选择和进度显示等。本篇文章将深入探讨SWFUpload的工作原理、使用方法...

    grails-plugin-converters-2.3.1.zip

    此外,开发者还可以利用SDK的权限控制功能,实现文件访问的安全性,如限制特定用户或角色对文件的操作权限。 总的来说,Grails Plugin Converters 2.3.1与Box Java SDK v2 的结合,为Java开发者提供了强大的工具集...

    Grails使用FCK Editor(附源码,有截图)

    本文将详细介绍如何在Grails应用中使用FCK Editor,同时附带源码和操作截图,以帮助开发者快速理解和实现这一功能。 ### 1. 安装与引入FCK Editor 首先,我们需要下载FCK Editor的源码包,并将其解压到Grails项目...

    Grails基础教程

    - **处理文件上传**:讲解了如何处理用户上传的图片文件。 - **上传到文件系统**:介绍了如何将文件保存到文件系统。 - **从数据库中递交相片**:探讨了如何将图片数据保存到数据库。 **7.6 通过过滤器拦截请求** ...

    Grails使用FCK Editor实例(附源码和文档)

    - **处理文件上传**:如果需要支持图片或其他文件上传,你需要扩展FCK Editor的默认配置,创建一个Controller处理上传请求,并将上传文件保存在服务器上。 **4. 源码与文档** 提供的源码包含了一个完整的Grails项目...

    Grails使用kindeditor,支持附件

    最后,确保你的Grails应用能够处理文件上传,可能需要配置安全设置,例如允许特定的MIME类型和文件大小。同时,你可能还需要考虑文件重命名、存储路径、权限控制等问题。 通过以上步骤,你已经在Grails应用中成功...

    Grails 技术精解与Web开发实践【源码+样章】----下载不扣分,回帖加1分,欢迎下载,童叟无欺

    8.2 文件上传的实现 107 8.2.1 开发表单页面 107 8.2.2 在Controller中接收文件 108 8.3 修改订单状态 109 8.4 本章小结 110 第9章 Grails的自动化测试 111 9.1 Grails自动化测试基础知识 111 9.2 编写测试用例 113...

    grails-docs-2.3.5.zip

    5. **Java OpenStack Swift客户端**:Java绑定提供了与Swift服务交互的API,包括上传、下载、列举对象、管理容器等功能。开发者可以使用这些API在Java应用中实现与Swift的无缝对接。 6. **开源软件**:开源项目意味...

    图片批量上传

    以下是一个简单的JavaScript示例,展示如何处理文件上传: ```javascript document.getElementById('uploadInput').addEventListener('change', function(event) { var files = event.target.files; for (var i =...

    image-manager:Grails 图像管理器插件

    此外,由于Grails的开放性,开发者可以利用Grails的AOP(面向切面编程)和拦截器机制来实现更复杂的业务逻辑。 **六、总结** "image-manager"插件为Grails应用提供了强大的图像管理功能,让开发者能够专注于业务...

    JavaWeb轻量级开发全体验邓子云part1

    邓子云的"JavaWeb轻量级开发全体验part1"可能涵盖了一系列与轻量级开发相关的主题,包括但不限于常用的类库、代码示例、文件上传下载功能的实现以及电子邮件服务的集成。以下是对这些知识点的详细说明: 1. **轻量...

Global site tag (gtag.js) - Google Analytics