ホームページ >バックエンド開発 >PHPチュートリアル >thinkphp3.2のuploadifyアップロードGUIDはアップロードで1回だけ呼び出されます。これを実現するにはどうすればよいですか?

thinkphp3.2のuploadifyアップロードGUIDはアップロードで1回だけ呼び出されます。これを実現するにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-06-23 13:44:56934ブラウズ

私が実現したいのは、画像をアップロードしてデータベースに書き込み、トークンを自動的に生成するuploadifyです。
アップロードクラスはthinkphp自体のUploadクラスを使用します。結果をデータベースに挿入するときに、それが実行されます。それぞれの写真が異なることがわかります
以下に示すように



これは、アップロード後に Uploadyify がどのように処理されるかです

  public function  uploadify(){        if(!empty($_FILES)){            $config =array(                'maxSize' => 1024000,// 附件大小                'savePath'=> "attachment/picture/uploadify/",//附件保存路径                'saveName'=>array('uniqid',''),//附件保存名称                'exts'=>array('jpg','jpeg','png','gif','rar','zip'),//附件类型                'autoSub'=>true,//开启子目录保存                'subName'=>array('date','Ymd')//子目录命名规则            );            $upload=new \Think\Upload($config);            $files_upload=$upload->upload();            if($files_upload){                foreach($files_upload as $file){//                 $info= $files_upload['Filedate']['savepath'].$files_upload['Filedata']['savename'];//                 上传后文件名                    $savename=$file['savename'];//                 上传前文件名                    $name=$file['name'];//                 上传文件类型                    $type=$file['ext'];//                 上传文件大小 k                    $size=$file['size'];//                 上传目录                    $path=$file['savepath'].$file['subname'].$file['savename'];                                      $attachment=D('picture_attachment');                    $date['creattime']=date('Y-m-d H:i:s',time());                    $date['pictureurl']=$path;                    $date['oldname']=$name;                    $date['newname']=$savename;                    $date['picturesize']=$size;                    $date['picturetype']=$type;                    $date['pictureid'] =$this->guid();// token guid                   if( $attachment->create($date)){                        $attachment->add();                        session('guid',$date['pictureid']);                   /*   返回给前台JS调用*/                       echo $path ;                   }                    else{                        unlink($path.$type);                        session("FilesInFo",null);                    }                } ;            }else{                /*返回报错信息*/                $info=$this->error($upload->getError(),U('picture/add'),30);                echo $info;            }        }        else{            echo '上传文件为空';        }// end    }


これは、アップロードされたファイルを走査するときに呼び出しが生成されることを意味します $date['pictureid'] =$this ->guid() これを一度だけ実行する方法
このように、guidには複数の画像があります トークンは同じです〜 TP3.2に詳しい方、アドバイスをお願いします。ありがとうございます


ディスカッション(解決策)への返信

これはあなたが言及しているものですか? $date['pictureid'] =$this->guid();// トークン guid

ループ内で実行すると、当然毎回異なります
ループの前に置くと、うまくいきます一度しか実行されないのですか?

ということですか? $date['pictureid'] =$this->guid();// トークン guid

ループ内で実行すると、当然毎回異なります
ループの前に置くと、うまくいきます一度しか実行されないのですか?


これも機能しません。使用しているアップロード クラスに問題がありますか?

このクラスは 1W 文字制限を超えています。 。 。 。 。
TPに詳しいマスターの皆さん、ここの処理方法に問題があるとわかったらループの外には出せない
ThinkPHPLibraryThinkUpload.class.php

これのことを指しているのでしょうか? $date['pictureid'] =$this->guid();// トークン guid
ループ内で実行すると、当然毎回異なります
ループの前に置くと、うまくいきます一度しか実行されないのですか?


これも機能しません。使用しているアップロード クラスに問題がありますか?

このクラスは 1W の文字制限を超えています。 。 。 。 。
TPに詳しいマスターの皆さん、ここの処理方法に問題があるとわかったら、ループの外に置くとうまくいきません
ThinkPHPLibraryThinkUpload.class.php
さあ、一つ入れてください
$upload=new ThinkUpload($config);
$files_upload= $upload->upload();
これら 2 つのメソッドはアップロード クラスで実行されますか?
ここで問題がありますか?
/* ファイルを 1 つずつ検出してアップロードします */
$info = array();
if(function_exists('finfo_open')){
$finfo = finfo_open (FILEINFO_MIME_TY PE ; $files = $this->dealFiles( $files);
foreach ($files as $key => $file) {
if(!isset($file['key'])) $file['key' ] finfo_file ( $finfo , $file[ 'tmp_name'] );
}
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。