很方便的后台ajax上傳文件


<a href="javascript:void(0);" url="{:U('teacherd?id='.$vo['id'])}" class="teacherd" uid="{$vo.id}"><if condition="$vo.spstatus eq 0" >上傳批閱<else /> 已批閱 </if></a>

            $(".teacherd").click(function () {
                var $this=$(this);
                var id = $(this).attr("uid");
                var url = $(this).attr('url');
                var p_id = "{:I('p_id')}";
                var display = 'none';
                var src = '';
                var content = '<div class="margin_left_10" style="margin:20px;"><input type="hidden" name="id" value="' + id + '" ><div class="form-item"><div class="controls"><label class="label">上傳文件:<span class="check-tips" id="picture-size"></span></label><input type="file" id="upfile"><input type="hidden" name="photo" id="cover_id_picture_id"/><div class="upload-img-box"><div class="upload-pre-item"  style="display:' + display + ';"><img src="' + src + '"/></div></div></div></div></form></div>';
                layer.open({
                    type: 1,
                    title: '上傳審批',
                    content: content,
                    closeBtn: 2,
                    area: ['350px', '250px'],
                    btn: '確定',
                    yes: function () {
                        var fd = new FormData();
                        var uname =  $('#upfile').val().split('.');   //獲取上傳文件名並拆封成數組(獲取后綴)
                        if((uname[1] != 'docx') && ( uname[1] != 'doc')){
                            
                            alert(uname[1]);
                             return false;
                        }
                        fd.append("upload", 1);
                        fd.append("id", id);   //將id傳入
                        fd.append("p_id",p_id);  //p_id
                        fd.append("upfile", $("#upfile").get(0).files[0]);
                        $.ajax({
                            url: "{:U('uploadss')}",
                            type: "POST",
                            processData: false,
                            contentType: false,
                            data: fd,
                            success: function (d) {
                                if(d.code == 200){
                                    $(".layui-layer-shade").hide();
                                    $(".layui-layer-page").hide();
                                    $(".bac").fadeIn();
                                    $(".bac1").html("上傳成功")
                                    $this.html("已審批")
                                }else{
                                    $("#layui-layer-shade1").hide();
                                    $("#layui-layer1").hide();
                                    $(".bac").fadeIn();
                                    $(".bac1").html("上傳失敗")
                                }
//                                console.log(d);
                            }

                        })
                    }
                })
            });

$(".closeA").on("click",function(){
    $(".bac").fadeOut()
})
$(".layui-layer-btn0").on("click",function(){
    $(".layui-layer-shade").hide();
    $(".layui-layer-page").hide();
})

后台代碼:

 /*
     * 上傳審批
     * Carey
     */

    public function uploadss() {
        $id = $_POST['id'];   //id
        $p_id = $_POST['p_id'];

        $exam_listsDB = M('exam_lists');
        $username = $exam_listsDB->where(array('id' => $id))->getField('username');

        $username = iconv("UTF-8", "gb2312", $username); //轉碼utf8
        $saveName = $username . '_' . $p_id . '_' . $id;  //文件命名規則考場p_id_用戶id;

        $rootpath = '../Public/Uploads/examsp/kc' . $p_id . '/';
        mkdir($rootpath, 0755);

        $upload = new \Think\Upload(); // 實例化上傳類    
        $upload->maxSize = 3145728; // 設置附件上傳大小    3M
        $upload->exts = array('application/msword', 'doc', 'docx'); // 設置附件上傳類型
        $upload->rootPath = $rootpath; // 設置附件上傳根目錄    // 上傳文件
        $upload->autoSub = TRUE;   //自動生成子目錄
        $upload->subName = 'py';
        $upload->saveName = $saveName;   //根據p_id-id
        $upload->replace = TRUE; //存在同名是否覆蓋 true覆蓋

        $info = $upload->uploadOne($_FILES['upfile']);

        if (!$info) {// 上傳錯誤提示錯誤信息        
            $redata = array(
                'code' => 303, 'info' => $info, 'files' => $_FILES, 'id' => $id, 'p_id' => $p_id, 'username' => $username,
            );
        } else {
            // 上傳成功
            $info['savename'] = iconv("gb2312", "UTF-8", $info['savename']);   //轉碼utf8
            $cha_dourl['cha_dourl'] = 'Public/Uploads/examsp/' . $info['savepath'] . $info['savename'];
            $cha_dourl['sptime'] = time();
            $cha_dourl['spstatus'] = 1;
            /* 如果上傳成功更新表單數據 */
            $upda = $exam_listsDB->where(array('id' => $id))->save($cha_dourl);
            if ($upda) {
                $redata = array(
                    'code' => 200, 'info' => $info, 'files' => $_FILES, 'id' => $id, 'p_id' => $p_id, 'upda' => $upda,
                );
            } else {
                $redata = array(
                    'code' => 404, 'info' => $info, 'files' => $_FILES, 'id' => $id, 'p_id' => $p_id, 'upda' => $upda,
                );
            }
        }
        $this->ajaxReturn($redata);
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM