`
flowercat
  • 浏览: 361737 次
社区版块
存档分类
最新评论

使用play!完成iframe无刷新上传文件

    博客分类:
  • java
阅读更多

页面代码片段:

<form id="uploadform" name="uploadform" action="/manage/upload"  method="post" enctype="multipart/form-data">
<iframe id="upload_target" name="upload_target" src="" style="width:0;height:0;border:0px solid #fff;"></iframe>

<p class="file"><input type="file" name="picupload" id="picupload" size="30"/>仅支持JPG、GIF图片文件,且文件小于2M。</p>
<p class="upload"><button class="btnstyle1" type="button" onclick="uploadpic(this)">上传</button><span id="uploadcheck"></span></p></li>
<input type="hidden" name="uploadsubmit" value="上传" />

 

javascript脚本片段:

function uploadpic(obj){
    $('uploadform').target = 'upload_target';
    $('uploadform').submit();
}

//iframe回调的方法
function callback(s){
    $("userimage").src = s;
     var obj = $("picupload");

     //清除file控件内容
    obj.outerHTML+="";//适用于IE
    obj.value="";//适用Firefox
}

 

play!的Controller内接收上传的方法:

    public static void upload(File picupload){
        String ext=picupload.getName().substring(picupload.getName().lastIndexOf("."));
        String fileName=RandomStringUtils.random(8,true,true)+ext;
        File f=new File(Constants.uploadPath+fileName);
        picupload.renameTo(f);
        response.contentType="text/html; charset=utf-8";
        renderText("<script>parent.callback('/upload/"+fileName+"')</script>");

    }

说明:使用renderText方式的话response的Content-type是text/plain,纯文本方式,js脚本将不会执行,需要设置response的response.contentType="text/html; charset=utf-8"

或者新加一个html模板,使用render(fileName)的方式将文件名写入模板。

分享到:
评论

相关推荐

    Learning Play!Framework 2

    3. **项目初始化**:使用 `play new` 命令来创建一个新的 Play! 项目。 4. **配置文件**:通过编辑 `conf/application.conf` 文件可以设置项目的配置参数,如数据库连接等。 #### 四、核心概念与组件 1. **路由**...

    play framework api,play! framework api,play api

    Play Framework API 是开发者使用该框架进行开发时的重要参考资料。 在描述中提到的"play framework api,play! framework api,play api"都是指Play Framework的API文档,它包含了框架的所有公共类、方法和接口,供...

    play!框架学习文档(汉化了一部分)

    5. **简洁的文件上传处理**:通过 Play! 提供的 API,可以非常方便地处理文件上传请求,减少了许多传统框架中繁琐的步骤。 ### 安装并运行 Play! 应用 1. **下载 Play!**:访问官方网站 ...

    play!framework框架——japid源码

    **Play! Framework框架与Japid源码解析** 在软件开发领域,使用高效的框架可以极大地提升开发效率和代码质量。Play! Framework是一个流行的Java Web应用程序框架,它采用模型-视图-控制器(MVC)架构模式,支持敏捷...

    android play Asset Delivery 打包工具和批处理文件

    在本话题中,我们将探讨如何使用相关的打包工具——bundletool,以及如何通过批处理文件来自动化这个过程。 **bundletool** 是一个Java命令行工具,由Google开发并维护,用于与Android App Bundle (AAB) 进行交互。...

    对play!的CRUD的一次改造

    对play!的CRUD 进行改造,改代码还会持续重构,并不完善。 1.将create,show,delete,list都改成@Util方法,可以类似 public static void show(String id){ MyCRUD.show(id); } 的方式调用。更通用。 2.增加@...

    playWebsite:彼得的网站使用Play!

    在这个名为"playWebsite:彼得的网站使用Play!"的项目中,我们可以推断出彼得使用了Play!框架来构建他的网站,可能旨在创建一个交互性强、响应速度快的Web应用程序。 JavaScript是一种广泛应用于客户端Web开发的...

    PHP+iframe模拟Ajax上传文件功能示例

    在xmlhttprequest level 1中,Ajax是不能够上传文件的,因为js不能操作本地文件,但是市场上有一些Ajax异步上传文件的插件,是怎么完成的呢?答案:可以使用iframe模拟Ajax上传文件。接下来博主将使用iframe来模拟...

    play_入门学习手册

    若要将项目转换为Eclipse项目,可以使用`play eclipsify`命令,便于在Eclipse中进行开发。 在Play!框架中,实体Bean通常使用JPA标准进行定义。例如,创建一个User实体类,我们需要在models包中创建一个名为User的类...

    CarPlay认证协议log记录 ATS文件

    CarPlay认证的协议log记录 ATS文件,在2018年认证通过的log,供carplay开发者参考。

    play!framework_api

    一个优于RoR的快速开发框架playframework,完全面向对象,基于jvm的REST框架,文档非常少,上手很容易,从名字上可以看出play就是玩,可以当作游戏一样轻松的玩的框架,这是它的API文档,网页格式.

    Android-从GooglePlay商店下载apk文件

    标题中的"Android-从GooglePlay商店下载apk文件"指的就是使用第三方工具或API来获取Google Play上的APK。Yerimo Min开发的Yalp Store(压缩包子文件的文件名称)是一个这样的工具,它允许用户以非官方的方式从Google...

    Play Framework2本教程

    Play Framework2是一个强大的Java和Scala应用开发框架,它以其简洁的API、快速的开发周期以及对Web标准的紧密集成而闻名。本教程旨在为初学者和有经验的开发者提供全面的指导,帮助他们掌握Play Framework2的核心...

    让Play!Framework运行在OpenShift上

    NULL 博文链接:https://modun.iteye.com/blog/1595857

    CarPlay认证的协议log记录usb分析仪文件

    CarPlay认证的协议log记录usb分析仪文件,在2018年认证通过的log,供carplay开发者参考。tdc文件,请用ats工具配件Total Phase Data Center Software打开。

    realtime-search:使用Play!,Akka,AngularJS和Elasticsearch进行演示以执行实时日志条目搜索

    使用Play,Akka,AngularJS和Elasticsearch进行实时React日志搜索使用Play!,Akka,AngularJS和Elasticsearch进行演示以执行实时日志条目搜索。 请参阅随附的。执照该软件是根据以下引用的Apache 2许可获得许可的。...

    Unity 使用 Play Asset Delivery 插件

    Unity 使用 Play Asset Delivery 插件 com.google.play.assetdelivery-1.7.0.unitypackage unity 打包aab所使用的插件 可是使用它,解决谷哥安装包150m限制

Global site tag (gtag.js) - Google Analytics