JS插片方法

开发中遇到的几个问题:
1:js传送文件的数据,无法传送的问题,最后采用了实例化h5的接口,FormData,利用这个构建form表单,进行表单的传送数据,文件
2:遇到了传的问题中,传了一半不传了,是因为设置了timeout的值有点小
3:在用,file_put_contents ,filesize,这两个函数的时候路径没有写对,导致了判断失误的问题
4:FILE_APPEND表示向同一个文件中追加的意思
5:ajax 中timeout的单位为毫秒
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/Crawler/Public/Upload/'.$arr['fileName'],file_get_contents($files['tmp_name']),FILE_APPEND)
// 计算文件大小 size = file.size > 1024 ? file.size / 1024 > 1024 ? file.size / (1024 * 1024) > 1024 ? (file.size / (1024 * 1024 * 1024)).toFixed(2) + 'GB' : (file.size / (1024 * 1024)).toFixed(2) + 'MB' : (file.size / 1024).toFixed(2) + 'KB' : (file.size).toFixed(2) + 'B';
//页面代码
//JS代码
//服务器端代码
if($_POST){
    $files = $_FILES['data'];
    $arr['i'] = $_POST['index'];
    $arr['shardCount'] = $_POST['total'];
    $arr['totalsize'] = $_POST['totalsize'];
    $arr['fileName'] = $_POST['name'];
    if($files['error'] > 0){
        $arr['status'] = 500;
        exit(json_encode($arr));
    }
    if($files['error'] == 0){
        /*  检测第一次上传的时候已经有同文件时,删除原来的文件  */
        if ($arr['i'] == 1 && is_file('/Public/Upload/'. $arr['fileName']) && filesize($_SERVER['DOCUMENT_ROOT'].'/Crawler/Public/Upload/'. $arr['fileName']) == $arr['totalsize']) {
            unlink($_SERVER['DOCUMENT_ROOT'].'/Crawler/Public/Upload/'. $arr['fileName']);
        }
        // 否则继续追加文件数据
        if (!file_put_contents($_SERVER['DOCUMENT_ROOT'].'/Crawler/Public/Upload/'.$arr['fileName'],file_get_contents($files['tmp_name']),FILE_APPEND)) {
            $arr['status'] = 501;
            exit(json_encode($arr));
        }
        // 在上传的最后片段时,检测文件是否完整(大小是否一致)
        if ($arr['i'] == $arr['shardCount']) {
if(filesize($_SERVER['DOCUMENT_ROOT'].'/Crawler/Public/Upload/'. $arr['fileName']) == $arr['totalsize']){
    $arr['status'] = 200;
}else{
    $arr['status'] = 501;
}
exit(json_encode($arr));
        }
        $arr['status'] = 201;
        exit(json_encode($arr));
    }else{
        $arr['status'] = 502;
        exit(json_encode($arr));
    }
}else{
    $this->display();
}

你可能感兴趣的:(javascript,java,开发语言)