thinkphp の 1 つのメソッドは、別のメソッドの変数
//实例化上传类<br /> public function upload() { <br /> $upload = new Upload();<br /> $upload->maxSize = 10 * 1024 * 1024;<br /> $upload->exts = array('jpg', 'jpeg', 'gif', 'txt','zip');<br /> $upload->savePath = './';<br /> $upload->hash = false;<br /> $info = $upload->upload();<br /> if (!$info) {<br /> $this->error($upload->getError());<br /> } <br /> else{<br /> foreach ($info as $file) {<br /> $uploadFile=$file['savepath'].$file['savename'];<br /> echo $uploadFile;<br /> } <br /> }<br /> }<br /> //添加文章<br /> public function addArticle(){<br /> $sort = $_POST['sort'];<br /> $title = $_POST['title'];<br /> $intro = $_POST['intro'];<br /> $pic = $_POST['pic'];<br /> $content = $_POST['content']; <br /> $articleSort= D('Article')->addArticle($sort,$title,$intro,$pic,$content);<br /> $this->display('Index/AddArticle');<br /> }
ログイン後にコピー
を呼び出して、記事を追加する関数を作成します。記事を追加する場合、ユーザーはまず更新せずに ajax 経由でファイルをアップロードし、次に記事を編集して「記事の公開」ボタンをクリックします。 QQ メールボックスに少し似ています。
コード内では、upload() はファイルをアップロードするメソッド、addArticle() は記事を追加するメソッドです。
ユーザーがファイルをアップロードするとき、upload() メソッドを実行して、指定されたディレクトリにファイルをアップロードします。ユーザーが記事の公開ボタンをクリックしたときに、 addArticle() メソッドで、upload() 変数 $uploadFile を取得します。これは、ユーザーがファイルをアップロードし、記事のコンテンツとともにデータベースに保存するディレクトリです。 。
簡単に言うと、addArticle() メソッドの Upload() メソッドで変数 $uploadFile を使用する必要があります
専門家の方、助けてください
-----解決策のアイデア----- ------------------ から記事を追加する場合、ユーザーは最初に アップロードと addArticle が表示されます。これは個別に実行されます。 次に、アップロード結果をサーバーにキャッシュし、addArticle の実行時に取得する必要があります。
----- -解決策のアイデア------ ----------------
セッションを使用することができ、キャッシュはファイル名だけです Ajax アップロード後にファイル名を返すこともできます。フォーム コントロールを作成し、フォームと一緒に送信します
アーキテクチャでは、(アップロード後) 操作が中止されたときのガベージ コレクションという問題を考慮する必要があります。この時点で、アップロードされたファイルは孤立します)
参考までに、次の計画を示します:
アップロードされたファイルは、アップロード ディレクトリに直接配置されるのではなく、最初に配置されます。フォームが正式に送信された後、ディレクトリ
をアップロードするために一時ディレクトリの名前を変更します。この方法では、一時ディレクトリを定期的にクリアするだけで済みます