Yii2.0 – Word上传下载和预览功能

我们这篇来说下怎么上传Word文档以及预览功能,下载功能之前有所提到,这里我先单独将下载功能单独提出来。

下载

/**
 * 下载单独文件接口
 * @param file_name 需要下载的文件
 * @param ext 文件扩展名
 * @example http://127.0.0.1/basic/web/index.php?r=my/downfile&file_name=1.doc
 */
public function actionDownfile($file_name, $ext = "doc") {
    // 
    if (file_exists($file_name)) {
        // 文件存在
        ob_start();
        $download_filename = date("YmdHis") . "." . $ext;
        header("Content-type:application/octet-stream"); 
        header("Accept-Ranges:bytes");
        header("Content-Disposition:attachment;filename=" . $download_filename);
        $size = readfile($file_name);
        header("Accept-Length:" . $size);
    }
}

效果如下图所示

上传功能

在前面php文件上传中,我们使用ajax完成了文件上传功能。这里我们使用Yii2.0来完成文件上传功能。
由于前端使用ajax来传文件,所以我们这里依旧展示服务器的代码即可

/**
 * 上传文件接口
 * 前端Ajax调用
 */
public function actionUploadfile() {
    if (isset($_FILES) && isset($_FILES['myfile'])) {
        $err = "";
        $picname = $_FILES['myfile']['name'];   // 这里和提交的file表单名字相同, < input id="fileupload" type="file" name="myfile" >
        $picsize = $_FILES['myfile']['size'];
        if ($picname != "") { 
            if ($picsize > 512000 * 2) { // 限制上传大小 
                $err = '文件不能超过1M'; 
            } 
            $type = strstr($picname, '.'); //限制上传格式 
            if ($type != ".doc") { 
                $err = '文件格式不对!'; 
            }
            if ($err == "") {
                $rand = rand(100, 999); 
                $pics = date("YmdHis") . $rand . $type; //命名图片名称 
                
                //上传路径 
                $pic_path = "DocDir/" . $pics; 
                move_uploaded_file($_FILES['myfile']['tmp_name'], $pic_path);
            }
        } 
        $size = round($picsize / 1024, 2); //转换成kb 
        $arr = array( 
            'name' => $picname, 
            'filename' => $pics, 
            'size' => $size 
        ); 
        echo json_encode($arr); //输出json数据 
    }
}

在线预览功能

我们来看看在线预览怎么做
我们使用flexPaper + swftool的方式来做
首先我们先下载flexPaper,然后安装swftool
swftool参考:http://blog.csdn.net/zhizaibide1987/article/details/28901511
最终展示效果:http://47.94.156.112/FlexPaper
同时参考:http://blog.chinaunix.net/uid-25512152-id-3077202.html

欢迎留言

avatar
  Subscribe  
Notify of