diff --git a/app/Http/Controllers/IndexController.php b/app/Http/Controllers/IndexController.php
index d6020b77d..638218811 100755
--- a/app/Http/Controllers/IndexController.php
+++ b/app/Http/Controllers/IndexController.php
@@ -302,60 +302,78 @@ class IndexController extends InvokeController
abort(404);
}
//
- if (file_exists($file)) {
- parse_str($data['query'], $query);
- $name = Arr::get($query, 'name');
- $ext = strtolower(Arr::get($query, 'ext'));
- $userAgent = strtolower(Request::server('HTTP_USER_AGENT'));
- if ($ext === 'pdf') {
- // 文件超过 10m 不支持在线预览,提示下载
- if (filesize($file) > 10 * 1024 * 1024) {
- return view('download', [
- 'name' => $name,
- 'size' => Base::readableBytes(filesize($file)),
- 'url' => Base::fillUrl($path),
- 'button' => Doo::translate('点击下载'),
- ]);
- }
- // 浏览器类型
- $browser = 'none';
- if (str_contains($userAgent, 'chrome')) {
- $browser = str_contains($userAgent, 'android') || str_contains($userAgent, 'harmonyos') ? 'android-mobile' : 'chrome-desktop';
- } elseif (str_contains($userAgent, 'safari') || str_contains($userAgent, 'iphone') || str_contains($userAgent, 'ipad')) {
- $browser = str_contains($userAgent, 'iphone') || str_contains($userAgent, 'ipad') ? 'safari-mobile' : 'safari-desktop';
- }
- // electron 直接在线预览查看
- if (str_contains($userAgent, 'electron') || str_contains($browser, 'desktop')) {
- return Response::download($file, $name, [
- 'Content-Type' => 'application/pdf'
- ], 'inline');
- }
- // EEUI App 直接在线预览查看
- if (str_contains($userAgent, 'eeui') && Base::judgeClientVersion("0.34.47")) {
- if ($browser === 'safari-mobile') {
- $message = Base::array2json([
- 'type' => 'currentOpen',
- 'url' => Base::fillUrl($path),
- ]);
- return "";
- }
- }
- }
- //
- if (in_array($ext, File::localExt)) {
- $url = Base::fillUrl($path);
- } else {
- $url = 'http://' . env('APP_IPPR') . '.3/' . $path;
- }
- if ($ext !== 'pdf') {
- $url = Base::urlAddparameter($url, [
- 'fullfilename' => $name . '.' . $ext
+ if (!file_exists($file)) {
+ abort(404);
+ }
+ //
+ parse_str($data['query'], $query);
+ $name = Arr::get($query, 'name');
+ $ext = strtolower(Arr::get($query, 'ext'));
+ $userAgent = strtolower(Request::server('HTTP_USER_AGENT'));
+ if ($ext === 'pdf') {
+ // 文件超过 10m 不支持在线预览,提示下载
+ if (filesize($file) > 10 * 1024 * 1024) {
+ return view('download', [
+ 'name' => $name,
+ 'size' => Base::readableBytes(filesize($file)),
+ 'url' => Base::fillUrl($path),
+ 'button' => Doo::translate('点击下载'),
]);
}
- $toUrl = Base::fillUrl("fileview/onlinePreview?url=" . urlencode(base64_encode($url)));
- return Redirect::to($toUrl, 301);
+ // 浏览器类型
+ $browser = 'none';
+ if (str_contains($userAgent, 'chrome')) {
+ $browser = str_contains($userAgent, 'android') || str_contains($userAgent, 'harmonyos') ? 'android-mobile' : 'chrome-desktop';
+ } elseif (str_contains($userAgent, 'safari') || str_contains($userAgent, 'iphone') || str_contains($userAgent, 'ipad')) {
+ $browser = str_contains($userAgent, 'iphone') || str_contains($userAgent, 'ipad') ? 'safari-mobile' : 'safari-desktop';
+ }
+ // electron 直接在线预览查看
+ if (str_contains($userAgent, 'electron') || str_contains($browser, 'desktop')) {
+ return Response::download($file, $name, [
+ 'Content-Type' => 'application/pdf'
+ ], 'inline');
+ }
+ // EEUI App 直接在线预览查看
+ if (str_contains($userAgent, 'eeui') && Base::judgeClientVersion("0.34.47")) {
+ if ($browser === 'safari-mobile') {
+ $redirectUrl = Base::fillUrl($path);
+ return <<
+ let t = window.top
+ let \$A = null
+ while (t) {
+ if (t.\$A) {
+ \$A = t.\$A
+ break
+ }
+ t = t.top
+ }
+ if (\$A) {
+ \$A.eeuiAppSendMessage({
+ action: 'setPageData',
+ data: {
+ titleFixed: true,
+ urlFixed: true,
+ }
+ });
+ }
+ t.location.href = "{$redirectUrl}"
+
+ EOF;
+ }
+ }
}
- abort(404);
+ //
+ if (in_array($ext, File::localExt)) {
+ $url = Base::fillUrl($path);
+ } else {
+ $url = 'http://' . env('APP_IPPR') . '.3/' . $path;
+ }
+ $url = Base::urlAddparameter($url, [
+ 'fullfilename' => Base::rightDelete($name, '.' . $ext) . '_' . filemtime($file) . '.' . $ext
+ ]);
+ $redirectUrl = Base::fillUrl("fileview/onlinePreview?url=" . urlencode(base64_encode($url)));
+ return Redirect::to($redirectUrl, 301);
}
/**
diff --git a/docker-compose.yml b/docker-compose.yml
index 8add783d9..5ed82cae3 100755
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -104,7 +104,7 @@ services:
fileview:
container_name: "dootask-fileview-${APP_ID}"
- image: "kuaifan/fileview:4.2.0-SNAPSHOT-RC22"
+ image: "kuaifan/fileview:4.2.0-SNAPSHOT-RC23"
environment:
KK_CONTEXT_PATH: "/fileview"
KK_OFFICE_PREVIEW_SWITCH_DISABLED: true
diff --git a/resources/assets/js/App.vue b/resources/assets/js/App.vue
index 90f59e6e0..8bd9b550e 100755
--- a/resources/assets/js/App.vue
+++ b/resources/assets/js/App.vue
@@ -61,14 +61,12 @@ export default {
mounted() {
window.addEventListener('resize', this.windowSizeListener);
window.addEventListener('scroll', this.windowScrollListener);
- window.addEventListener('message', this.windowHandleMessage)
this.searchInter = setInterval(this.searchEnter, 1000);
},
beforeDestroy() {
window.removeEventListener('resize', this.windowSizeListener);
window.removeEventListener('scroll', this.windowScrollListener);
- window.removeEventListener('message', this.windowHandleMessage)
this.searchInter && clearInterval(this.searchInter);
},
@@ -238,15 +236,6 @@ export default {
this.$store.state.windowScrollY = window.scrollY
},
- windowHandleMessage({data}) {
- data = $A.jsonParse(data);
- if (data.type === 'currentOpen') {
- if ($A.getDomain(window.location.href) === $A.getDomain(data.url) || $A.getDomain($A.apiUrl('../')) === $A.getDomain(data.url)) {
- window.location.href = data.url
- }
- }
- },
-
electronEvents() {
if (!this.$Electron) {
return;
diff --git a/resources/mobile b/resources/mobile
index a6ebc5ab0..cdbbf1f0e 160000
--- a/resources/mobile
+++ b/resources/mobile
@@ -1 +1 @@
-Subproject commit a6ebc5ab089fab50e95ae614487782b69566412e
+Subproject commit cdbbf1f0e237d6b38713ed327d974177fcae9f85