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

Yii使用iframe实现异步上传/下载文件

 
阅读更多
作者:zccst
yii常规post方式提交表单方式请参考:


除了常规post提交方式外,还有异步提交方式。
原理是使用iframe代替原来的页面跳转,大大提升用户体验。

一、上传文件

1,前端html代码
<form id="upForm" action="<?php echo $this->createUrl('repairUpload'); ?>" method="post" enctype    ="multipart/form-data" target="upload_target">
    <input type="file" name="repair_attached_file" id="repair_attached_file" /><input type="subm    it" name="submitBtn" value="立即上传" />
    <iframe id="upload_target" name="upload_target" src="#" style="width:0;height:0;border:0px solid #fff;"></iframe>
</form>
<span id="upload_repairinfo_success" style="color:blue;"></span>


<script type="text/javascript">
function startUpload() {
	var spanObj = document.getElementById("upload_repairinfo_success");
	spanObj.innerHTML = " 开始上传";
	document.getElementById("upForm").sumbit();
}
function stopUpload(responseText){
	var spanObj = document.getElementById("upload_repairinfo_success");
	//spanObj.innerHTML = "上传成功";
	spanObj.innerHTML = responseText;
}
</script>



2、后端php代码

public function actionRepairUpload(){
    $attach = CUploadedFile::getInstanceByName('repair_attached_file');
    $retValue = "";
    if($attach->size > 3*1024*1024){
        $retValue = "提示:文件大小不能超过3M";
    }else{
        $f = file_get_contents($attach->tempName);
        $a = new Attachment();
        $a->ref_type = "failParts";
        $a->data = $f;
        $a->file_path = $attach->name;
        $a->save();
        $retValue = $a->id;
    }
    echo "<script type='text/javascript'>window.top.window.stopUpload('{$retValue}')</script>";
}


分享到:
评论
1 楼 ejacky 2012-03-23  
下载呢??

相关推荐

    Yii 2文件下载

    标题提到的"Yii 2文件下载"可能指的是Yii 2.0框架的安装包或者相关的扩展或示例代码。 在描述中,我们看到“找了好久才找到的Yii2.0”,这可能暗示了Yii 2.0的相关资源并不总是容易找到,尤其对于初学者来说,可能...

    采用Yii2框架、vue3/vite、Element Plus UI实现前后端分离,移动端使用UNIAPP框架

    ShopWind开源商城免费可商用,采用Yii2框架、vue3/vite、Element Plus UI实现前后端分离,移动端使用UNIAPP框架。系统包含微信小程序端、H5端、公众号商城、PC、APP客户端(Android、iOS),支持分销、拼团、社团...

    开源商城免费可商用,采用Yii2框架、vue3/vite、Element Plus UI实现前后端分离,移动端使用UNIAPP框

    ShopWind开源商城免费可商用,采用Yii2框架、vue3/vite、Element Plus UI实现前后端分离,移动端使用UNIAPP框架。系统包含微信小程序端、H5端、公众号商城、PC、APP客户端(Android、iOS),支持分销、拼团、社团...

    开源商城免费可商用采用Yii2框架、vue3/vite、Element Plus UI实现前后端分离,移动端使用UNIAPP框架

    ShopWind开源商城免费可商用,采用Yii2框架、vue3/vite、Element Plus UI实现前后端分离,移动端使用UNIAPP框架。系统包含微信小程序端、H5端、公众号商城、PC、APP客户端(Android、iOS),支持分销、拼团、社团...

    ShopWind开源商城免费可商用,采用Yii2框架、vue3/vite、Element Plus UI实现前后端分离,移动端使用UNIAPP框架

    ShopWind开源商城免费可商用,采用Yii2框架、vue3/vite、Element Plus UI实现前后端分离,移动端使用UNIAPP框架。系统包含微信小程序端、H5端、公众号商城、PC、APP客户端(Android、iOS),支持分销、拼团、社团...

    yii2 console 集成swoole 执行异步任务,例如注册邮件,发送短信

    然而,对于需要即时响应或者非阻塞操作的任务,如注册邮件发送、短信通知等,我们可以利用Swoole扩展来实现异步处理,从而提高系统效率。 Swoole是一个高性能的PHP扩展,它提供了底层的异步多线程服务器,支持TCP、...

    Yii2框架实现利用mpdf创建pdf文件功能示例

    本文实例讲述了Yii2框架实现利用mpdf创建pdf文件功能。分享给大家供大家参考,具体如下: 安装mPDF 使用 Composer安装 在yii2的 ‘composer.json’ 加入”mpdf/mpdf”:”*” require: { php: &gt;=5.4.0, yiisoft/...

    yii-1.1.8.r3324

    1. **MVC 架构**:Yii 实现了 MVC 设计模式,分离了业务逻辑、数据和用户界面。模型(Model)处理数据和业务逻辑,视图(View)负责展示,控制器(Controller)协调模型和视图,使得代码结构清晰,易于维护。 2. **...

    yii2-upload-behavior, ActiveRecord的Yii2文件/图像上传行为.zip

    yii2-upload-behavior, ActiveRecord的Yii2文件/图像上传行为 Yii2文件/图像上传行为这个包是两种类似行为的集合。 第一个允许你将上传的文件保留为。 第二个允许你为上传的图片生成缩略图。 可以为不同的属性多次...

    YII 2数据库迁移(Migrations) 使用教程

    ### YII 2数据库迁移(Migrations) 使用教程 #### 一、数据库迁移概念与作用 在软件开发过程中,随着项目的推进和技术需求的变化,数据库结构往往也需要进行调整或更新。为了更好地管理和跟踪这些变更,YII 2框架...

    yii2 basic

    10. **扩展性**:Yii2 Basic框架允许轻松安装和使用第三方扩展,如Gii(代码生成工具)、Debug Toolbar(调试工具栏)等,丰富了框架的功能。 在开发过程中,熟悉并掌握这些知识点,可以极大地提高开发效率,同时...

    Yii(易).docx

    ### Yii2框架详解:从入门到精通 #### 一、简介 Yii2是一款高效、安全且功能丰富的PHP Web开发框架,适用于开发大型Web应用程序。它提供了高性能的解决方案,旨在简化开发人员的工作流程,并帮助他们快速构建高质量...

    yii博客教程

    ### Yii博客教程知识点详解 #### 一、简介与目标 - **标题**:“Yii博客教程” - **描述**:本书是一本旨在引导初学者至进阶者的Yii教程,通过构建一个简单的博客系统来全面展现Yii框架的优势与特性。无论您是否...

    Yii实现用户注册登录、ajax、图片上传、modules编程基础例程(内置完整工程及使用说明)

    在Yii中,可以使用其内置的认证和授权组件来轻松实现这一功能。`User`组件负责处理用户认证,而`rbac`(Role-Based Access Control)则用于权限管理。通过创建模型、视图和控制器,你可以构建出完整的注册和登录界面...

    yii的小部件使用

    ### yii的小部件使用 在Yii框架中,小部件(Widgets)是用于封装并重用页面元素的一种机制。本文主要探讨如何在Yii框架中利用小部件(Widgets)来提高开发效率,尤其是在快速生成增删改查功能时的具体应用,并结合...

    yii2整合phpqrcode

    使用说明: use common\components\qrcode\QRcode; $res = QRcode::png('http://www.baidu.com'); var_dump($res); 参数说明: 第1个参数$text:二维码包含的内容,可以是链接、文字、json字符串等等; 第2个参数$...

    yii2-oauth2-rest-template, 带有OAuth2服务器的Yii2 REST API 模板.zip

    yii2-oauth2-rest-template, 带有OAuth2服务器的Yii2 REST API 模板 在 Yii2上,使用OAuth2服务器的 REST API 应用程序。这是一个 Yii2 Rest应用程序模板,配置了OAuth2服务器( 使用 ...

Global site tag (gtag.js) - Google Analytics