diff --git a/disk/Onedrive.php b/disk/Onedrive.php index d854886ef606a9aa6eb12333c04657f106f83e83..cdd7211e9cdb6829dcfd5217294908121574c5d5 100644 --- a/disk/Onedrive.php +++ b/disk/Onedrive.php @@ -100,11 +100,23 @@ class Onedrive { } } if (isset($files['file'])) { - if (in_array(splitlast($files['name'],'.')[1], $exts['txt'])) { - if (!(isset($files['content'])&&$files['content']['stat']==200)) { - $content1 = curl('GET', $files[$this->DownurlStrName]); - $files['content'] = $content1; - savecache('path_' . $path, $files, $this->disktag); + if (in_array(strtolower(splitlast($files['name'],'.')[1]), $exts['txt'])) { + if ($files['size']<1024*1024) { + if (!(isset($files['content'])&&$files['content']['stat']==200)) { + $content1 = curl('GET', $files[$this->DownurlStrName]); + $tmp = null; + $tmp = json_decode(json_encode($content1), true); + if ($tmp['body']===null) { + $tmp['body'] = iconv("GBK", 'UTF-8//TRANSLIT', $content1['body']); + $tmp = json_decode(json_encode($tmp), true); + if ($tmp['body']!==null) $content1['body'] = $tmp['body']; + } + $files['content'] = $content1; + savecache('path_' . $path, $files, $this->disktag); + } + } else { + $files['content']['stat'] = 202; + $files['content']['body'] = 'File too large.'; } } }