乐于分享
好东西不私藏

uni-app 鸿蒙 App 保存图片到相册:排坑全记录

uni-app 鸿蒙 App 保存图片到相册:排坑全记录

项目:Vue 3 + uni-app 3.0 App,编译目标 HarmonyOS App环境:HBuilderX 5.x + DevEco Studio 5.0 + 鸿蒙真机场景:将页面上的 Base64 二维码图片保存到系统相册


一、需求背景

项目有一个「数据同步」页面,生成绑定二维码后,用户需要将二维码保存到系统相册,然后在微信小程序中扫码同步数据。

在 Android/iOS 上,这段代码很简单:

JavaScript

// APP-PLUS 端(Android / iOS)constbitmap=newplus.nativeObj.Bitmap('qrcode-bitmap');bitmap.loadBase64Data(base64Str, () => {bitmap.save('_doc/qrcode.png', {}, () => {plus.gallery.save('_doc/qrcode.png', () => {uni.showToast({ title:'已保存到相册' });        });    });});

但到了一切都不一样的鸿蒙端,噩梦开始。


二、六次失败的尝试

尝试 1:直接用 plus.nativeObj.Bitmap

JavaScript

// 直接搬 Android 代码constbitmap=newplus.nativeObj.Bitmap(...);

结果:直接报错。plus 对象在鸿蒙上完全不可用。DCloud 官方文档明确说明:

由于性能原因,目前 uniapp 项目编译到 HarmonyOS 时,plus 对象不可用。

结论:此路不通。


尝试 2:getFileSystemManager().writeFile + _doc/ 路径

放弃 plus,改用 uni-app 的文件系统 API:

JavaScript

constbase64Data=base64Str.replace(/^data:image\/\w+;base64,/'');constfilePath='_doc/bind_qrcode.png';constfs=uni.getFileSystemManager();fs.writeFile({filePath,data:base64Data,encoding:'base64',success: () => {uni.saveImageToPhotosAlbum({ filePath, ... });    }});

结果:errCode: 1300002,提示路径不存在。

_doc/ 在 Android/iOS 的 plus.io 中能正确映射到应用沙箱,但鸿蒙的 getFileSystemManager 的路径翻译层有 bug,不认这个前缀。


尝试 3:去掉前缀,用纯文件名

JavaScript

constfilePath=`bind_qrcode.png`;   // 无任何前缀

结果:errCode: 1300002,同样的错误。纯文件名也不是有效路径。


尝试 4:unifile://cache/ 协议路径

查阅 uni-app 官方文档,发现 getFileSystemManager 的 filePath 参数被要求是「绝对路径,形如 unifile://cache/...」:

JavaScript

constfilePath=`unifile://cache/bind_qrcode.png`;

结果:errCode: 1300013(Permission denied),换了种方式拒绝。

unifile://cache/ 在理论上是正确的写法,但鸿蒙 JSVM 桥接层把它翻译到了一个没有写权限的目录。


尝试 5:全局 uni.writeFile

发现 getFileSystemManager().writeFile 和全局 uni.writeFile 是两个不同的 API——前者走 JSVM 直连 ArkTS(有路径翻译 bug),后者底层是 plus.io 桥接(理论上支持 _doc/):

JavaScript

uni.writeFile({filePath:'_doc/bind_qrcode.png',data:base64Data,encoding:'base64',success: () => { ... }});

结果:TypeError: uni.writeFile is not a function 鸿蒙端根本不存在这个全局 API。


尝试 6:UTS 原生插件

既然 JS 层面的 API 全都不行,那就写一个 UTS 插件,直接调用鸿蒙原生 API:

TypeScript

// utssdk/app-harmony/index.uts(伪代码)importfsfrom'@ohos.file.fs';importphotoAccessHelperfrom'@kit.MediaLibraryKit';exportconstsaveBase64ToAlbum=async (base64string=> {// 1. 解码 base64 → ArrayBuffer// 2. 写入 context.cacheDir 临时文件// 3. photoAccessHelper.showAssetsCreationDialog() 弹出保存弹窗// 4. 复制临时文件到授权 URI};

在 vite.config.js 中配置别名为 @/uni_modules/,导入即可。

结果:Cannot find module: @dcloudio/uni-uts-v1 UTS 插件依赖 @dcloudio/uni-uts-v1 这个编译运行时包,而项目中没有安装它。这个包带有特定版本号的后缀,说明是 DCloud 的内测/内部版,手动添加后还可能引入其他兼容性问题。

这条路能走通,但环境依赖太重,不适合轻量级的需求。


三、根因分析:为什么 getFileSystemManager 在鸿蒙上不工作

这是整个排坑过程中最重要的发现——不是路径格式的问题,而是架构层的硬伤

uni API 的执行路径

HTML

你的 JS 代码    ↓┌─────────────────────────────────────────┐│  uni.getFileSystemManager()             │  ← JS 层 API│       ↓                                  ││  【桥接层:JSVM → ArkTS 文件系统】      │  ← ❌ 这一层有 bug│       ↓                                  ││  @ohos.file.fs (鸿蒙原生文件 API)       │└─────────────────────────────────────────┘

uni-app 在鸿蒙上的架构是:Vue/JS 代码运行在一个嵌入的 JSVM(JavaScript 虚拟机) 中。getFileSystemManager().writeFile 是一个 JS API,需要经过一层桥接把调用翻译成 ArkTS 的文件操作。

问题就出在这层桥接上——路径翻译不完善:

你写的路径
桥接层的表现
错误码
_doc/xxx.png
不翻译,当纯文件名
1300002
(路径不存在)
xxx.png
(纯文件名)
不翻译
1300002
(路径不存在)
unifile://cache/xxx.png
翻译到无权限目录
1300013
(权限拒绝)

而 UTS 插件的原理就是绕过了这层桥接。UTS 代码编译后直接变成 ArkTS,不经过 JSVM 翻译,直接用 context.cacheDir(系统原生 API 返回的绝对路径)写文件。但由于 UTS 的编译依赖链太重,不适合这个场景。


四、最终方案:Canvas 绕行

所有直接操作文件的路径都被堵死了。换个思路——既然文件系统走不通,就用渲染引擎自带的导出能力。

页面上已经用 <image> 标签渲染了二维码,加一个隐藏的 <canvas>,把二维码画上去,再用 canvasToTempFilePath 导出临时文件路径,最后用 saveImageToPhotosAlbum 保存。

这个方案完全不碰文件系统 API,canvas 的临时路径由系统内部生成。

4.1 模板改动

在二维码图片旁边加一个隐藏 canvas:

JavaScript

<!-- 隐藏 canvas,仅用于鸿蒙端导出图片到相册 --><canvascanvas-id="qrcode-export-canvas"style="position: fixed; left: -9999px; top: -9999px; width: 240px; height: 240px;"></canvas>

4.2 保存逻辑

json5

// #ifdef APP-HARMONY// 鸿蒙端:所有 writeFile 写法都有路径翻译 bug// 绕过文件系统:把二维码画到 hidden canvas → canvasToTempFilePath → saveImageToPhotosAlbumconstctx=uni.createCanvasContext('qrcode-export-canvas');ctx.drawImage(qrImageBase64.value00240240);ctx.draw(false, () => {uni.canvasToTempFilePath({canvasId:'qrcode-export-canvas',width:240,height:240,success: (res) => {uni.saveImageToPhotosAlbum({filePath:res.tempFilePath,success: () => {uni.showToast({ title:'已保存到相册'icon:'success' });                },fail: (err) => {constmsg= (err&&err.errMsg||'';uni.showToast({title:msg.includes('auth'||msg.includes('permission')?'请允许相册权限后重试':'保存失败',icon:'none'                    });                }            });        },fail: (err) => {console.error('[BindQRCode] canvasToTempFilePath 失败:'err);uni.showToast({ title:'保存失败'icon:'none' });        }    });});return;// #endif

4.3 执行流程

JSON

二维码 Base64(页面已渲染的 <image>)    ↓ ctx.drawImage()Hidden Canvas(240×240,位于屏幕外)    ↓ ctx.draw(false, callback)Canvas 渲染完成    ↓ uni.canvasToTempFilePath()临时文件路径(系统内部生成,不经过 JSVM 文件系统桥接)    ↓ uni.saveImageToPhotosAlbum()系统相册

不需要任何文件写入、不需要路径翻译、不需要插件依赖。


五、权限配置

保存图片到相册需要在 harmony-configs/entry/src/main/module.json5 中声明权限:

text

{  "module": {    "requestPermissions": [      {        "name": "ohos.permission.WRITE_IMAGEVIDEO",        "usedScene": {          "abilities": ["EntryAbility"],          "when": "inuse"        }      },      {        "name": "ohos.permission.READ_IMAGEVIDEO",        "usedScene": {          "abilities": ["EntryAbility"],          "when": "inuse"        }      }    ]  }}

同时需要在 harmony-configs/entry/src/main/resources/base/element/string.json 中提供权限申请说明文案:

text

{"string": [    {"name""Reason_SaveImage","value""用于将二维码保存到系统相册"    }  ]}

权限声明是通过 harmony-configs/ 注入的,不能用 manifest.json 配置。详见《uni-app 鸿蒙 App 自定义配置全攻略》。


六、失败路径对比

序号
方案
写法
结果
原因
1
plus.nativeObj.Bitmapplus.gallery.save(...)
plus 不可用
鸿蒙不支持 plus API
2
getFileSystemManager + _doc/fs.writeFile({filePath:'_doc/xxx'})1300002
路径不翻译
3
无前缀文件名
fs.writeFile({filePath:'xxx.png'})1300002
路径不翻译
4
unifile://cache/fs.writeFile({filePath:'unifile://cache/xxx'})1300013
翻译到无权限目录
5
全局 uni.writeFile
uni.writeFile({...})
not a function
鸿蒙端不存在此 API
6
UTS 插件
import { fn } from '@/uni_modules/...'
缺少 uni-uts-v1
编译依赖链太重
7Canvas 绕行drawImage → canvasToTempFilePath → saveImageToPhotosAlbum✅ 成功
绕过文件系统

七、核心教训

  1. 鸿蒙 ≠ Androidplus.* 全家桶在鸿蒙上完全不可用,需要为鸿蒙端单独写一套保存逻辑。

  2. uni.getFileSystemManager().writeFile 在鸿蒙上有路径翻译 bug。无论怎么换路径格式(_doc/unifile://、纯文件名),底层桥接层都无法正确翻译到鸿蒙沙箱路径。这是 HBuilderX 的已知问题。

  3. 不要和文件系统较劲,用渲染引擎的能力。Canvas 的 toTempFilePath 由系统内部生成临时文件,完美绕过 JSVM 的文件系统桥接层。

  4. UTS 插件理论上是最优解,但实际落地时依赖链太重(需要 @dcloudio/uni-uts-v1 特定版本),不如 Canvas 方案轻量。

  5. 权限声明走 harmony-configs/manifest.json 的 app-harmony.distribute 字段不被构建系统处理,模块权限必须在 module.json5 中声明。


本文记录了 uni-app 鸿蒙 App 中「保存 Base64 图片到相册」这一看似简单的需求背后隐藏的 7 个坑。核心发现是 getFileSystemManager 的 JSVM 桥接层存在路径翻译缺陷,最终通过 Canvas 渲染引擎的导出能力绕过了整个文件系统问题。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-24 00:54:53 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/873110.html
  2. 运行时间 : 0.143590s [ 吞吐率:6.96req/s ] 内存消耗:4,593.38kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=2fab86234ad3ce40e2055ea0b49d7565
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000788s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000820s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000364s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000313s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000477s ]
  6. SELECT * FROM `set` [ RunTime:0.000229s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000625s ]
  8. SELECT * FROM `article` WHERE `id` = 873110 LIMIT 1 [ RunTime:0.004169s ]
  9. UPDATE `article` SET `lasttime` = 1784825693 WHERE `id` = 873110 [ RunTime:0.002519s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000267s ]
  11. SELECT * FROM `article` WHERE `id` < 873110 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000405s ]
  12. SELECT * FROM `article` WHERE `id` > 873110 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000314s ]
  13. SELECT * FROM `article` WHERE `id` < 873110 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.020981s ]
  14. SELECT * FROM `article` WHERE `id` < 873110 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.028702s ]
  15. SELECT * FROM `article` WHERE `id` < 873110 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.003231s ]
0.145457s