terminus 发表于 2013-5-9 10:10:42

[分享]使用iframe + ci上传类 实现异步文件上传

非常简单的使用jquery实现文件的异步上传,并且在窗口显示上传后的文件名


<?php

class welcome extends CI_Controller {

    public function index() {
      $this->load->view('uploader');
    }

    public function doupload() {

      $config = array(
            'encrypt_name' => TRUE,
            'upload_path' => up_url('', 1),
            'allowed_types' => '*'
      );

      $this->load->library('upload', $config);
      if (!$this->upload->do_upload()) {
            $datas['result'] = $this->upload->display_errors();
      } else {
            $datas['result'] = $this->upload->data()['file_name'];
      }

      //指定父页面接收上传文件名的元素id
      $datas['result_field'] = 'up_name';
      $this->load->view('upload_result', $datas);
    }

}



<!DOCTYPE HTML>
<html>
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <script src="<?php echo public_res('js/jquery-1.9.1.min.js'); ?>" type="text/javascript"></script>
      <script type="text/javascript">
            function tt1() {
                $("#upup").appendTo($("#iff").contents().find("body")).submit();
                                $("#up_name").val("uploading,please wait...");
            }
      </script>
    </head>
    <body>
      <input id="up_name" value="" disabled="disabled" />
      <form id="upup" action="<?php echo site_url('welcome/doupload'); ?>" method="post" enctype="multipart/form-data">
            <input name="userfile" type="file" />
            <input type="button" value="upload" />
      </form>

      <iframe id="iff">
      </iframe>
    </body>
</html>



<!DOCTYPE html>
<html>
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <script src="<?php echo public_res('js/jquery-1.9.1.min.js'); ?>" type="text/javascript"></script>
      <script type="text/javascript">
            $(document).ready(function() {
                var upload_result = $("#result").html();

                $(window.parent.document).find("#<?php echo $result_field; ?>").val(upload_result);
            });
      </script>
    </head>
    <body>
      <div id="result"><?php echo $result; ?></div>
    </body>
</html>






dolphin 发表于 2013-11-4 21:23:42

代码不能用啊大哥
页: [1]
查看完整版本: [分享]使用iframe + ci上传类 实现异步文件上传