thinkphp中一个方法调用另一个方法的变量
//实例化上传类 public function upload() { $upload = new Upload(); $upload->maxSize = 10 * 1024 * 1024; $upload->exts = array('jpg', 'jpeg', 'gif', 'txt','zip'); $upload->savePath = './'; $upload->hash = false; $info = $upload->upload(); if (!$info) { $this->error($upload->getError()); } else{ foreach ($info as $file) { $uploadFile=$file['savepath'].$file['savename']; echo $uploadFile; } } } //添加文章 public function addArticle(){ $sort = $_POST['sort']; $title = $_POST['title']; $intro = $_POST['intro']; $pic = $_POST['pic']; $content = $_POST['content']; $articleSort= D('Article')->addArticle($sort,$title,$intro,$pic,$content); $this->display('Index/AddArticle'); }
在做一个添加文章的功能。添加文章时用户可以先ajax无刷新上传文件,然后编辑文章后点发表文章按钮。有点类似QQ邮箱那种。
代码里 upload() 是上传文件的方法,addArticle()是添加文章的方法。
用户在上传文件时就会执行upload()方法把文件上传到指定的目录。我想用户在点击发布文章按钮时在addArticle()方法里获取upload()的变量$uploadFile,即用户上传文件的目录,然后和文章内容一起存储在数据库中。
简单来说我在addArticle()方法里要用到upload() 方法里的变量$uploadFile
求助各位大神
回复讨论(解决方案)
定义类属性。
由 添加文章时用户可以先ajax无刷新上传文件 可知
你的 upload 和 addArticle 是分开执行的
那么你就得在服务器上缓存 upload 的结果,在执行 addArticle 时取回
缓存这方法不错
由 添加文章时用户可以先ajax无刷新上传文件 可知
你的 upload 和 addArticle 是分开执行的
那么你就得在服务器上缓存 upload 的结果,在执行 addArticle 时取回
用session缓存结果好么,还是用其他方法
用 session 是可以的,缓存的只不过是文件名而已
也可以在 ajax 上传后,将回传的文件名写入表单控件,之后再和表单一起提交
在你的这个架构中,需要考虑到一个问题:操作夭折时的垃圾回收(上传图片后又放弃提交了,此时上传的文件就成了孤儿)
给个方案供你参考:
上传的文件不直接放到上传目录中而是先放到一临时目录中,待表单正式提交后再从临时目录 rename 到上传目录
这样只需定时清空临时目录就可以了
xuzuning版主说的非常好,我没考虑到的操作夭折也给参考方案。现在问题解决了,谢谢大神!!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

长URL(通常用关键字和跟踪参数都混乱)可以阻止访问者。 URL缩短脚本提供了解决方案,创建了简洁的链接,非常适合社交媒体和其他平台。 这些脚本对于单个网站很有价值

在Facebook在2012年通过Facebook备受瞩目的收购之后,Instagram采用了两套API供第三方使用。这些是Instagram Graph API和Instagram Basic Display API。作为开发人员建立一个需要信息的应用程序

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

这是有关用Laravel后端构建React应用程序的系列的第二个也是最后一部分。在该系列的第一部分中,我们使用Laravel为基本的产品上市应用程序创建了一个RESTFUL API。在本教程中,我们将成为开发人员

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

2025年的PHP景观调查调查了当前的PHP发展趋势。 它探讨了框架用法,部署方法和挑战,旨在为开发人员和企业提供见解。 该调查预计现代PHP Versio的增长
