Thinkphp複数ファイルアップロード実装方法、
この記事では、Thinkphp での複数ファイルのアップロードの実装方法を説明し、参考のために共有します。具体的な実装方法は以下の通りです
Thinkphp マニュアルでは、複数ファイルのアップロードについて非常に明確に説明しています: 複数のファイルを使用する必要がある場合は、フォームを変更して
を追加するだけです。
コードをコピーします コードは次のとおりです:
に変更します
コードをコピーします コードは次のとおりです:
または
コードをコピーします コードは次のとおりです:
現時点では、アップロード フォーム フィールドが 2 つあり、1 つは写真のアップロード用、もう 1 つはビデオのアップロード用です。フィールド名は画像とビデオです。
HTMLコードは以下の通りです
コードをコピーします コードは次のとおりです:
Picture:
ビデオ:
モデルコード:
コードをコピーします コードは次のとおりです:
protected $info= '';
protected $_auto = array(
array('image','upload',3,callback),//自動補完メソッド
array('video','videoupload',3,callback), //自動補完メソッド
);//アップロードされた画像を自動的に入力してサムネイルを生成します
保護された関数upload(){
$var = $_FILES['画像']['名前'];
import('ORG.Net.UploadFile');
$upload = new UploadFile();
$upload->saveRule = 時間;
$upload->allowExts = array('jpg', 'gif', 'png', 'zip','flv');
$upload->thumb = true;
//ビデオパス。 。 。 flv サフィックスのみをサポートします。
$upload->videopath = './Public/upload/Video/';
$upload->savePath = './Public/upload/images/';
$upload->thumbPrefix = '250_115_,150_110_,213_156_';
$upload->thumbMaxWidth='250,150,213';
$upload->thumbMaxHeight='115,110,156';
if(!in_array('',$var) || !in_array('',$_FILES['video']['name'])){
if(!$upload->upload()) {
echo $upload->getErrorMsg();die;
}その他{
$this->info = $upload->getUploadFileInfo();
if(!in_array('',$var) && !in_array('',$_FILES['video']['name'])){
return $this->info[1]['savename'];
}elseif(!in_array('',$var)){
return $this->info[0]['savename'];
}その他{
false を返します;
}
}
}その他{
フラッシュを返します;
}
}
//ビデオをアップロード
保護された関数 videoupload(){
if(!in_array('',$var) && !in_array('',$_FILES['video']['name'])){
return $this->info[0]['savename'];
}elseif(!in_array('',$_FILES['ビデオ']['名前'])){
return $this->info[1]['savename'];
}その他{
false を返します;
}
}
記事の最後では、複数ファイルのアップロードの原理を分析します。まず HTML コードを見てみましょう。
コードをコピーします コードは次のとおりです:
これは、フォーム変数を配列として定義するためです。PHP では、配列特殊変数に複数の可変長のコンテンツを格納できるため、PHP で処理するときにどのように操作するかを見てみましょう。例。
コードをコピーします コードは次のとおりです:
protected $_auto = array(
array('image','upload',3,callback),//自動補完メソッド
array('video','videoupload',3,callback), //自動補完メソッド
);//アップロードされた画像を自動的に入力してサムネイルを生成します
これにより、thinkphp がそれを配列変数であると認識します。元の PHP のように、走査された配列の長さを判断してコードを 1 つずつアップロードする必要はありません。これは、thinkphp がすでに行っているためです。
この記事で説明した内容が、皆様の ThinkPHP フレームワーク プログラミングに役立つことを願っています。
http://www.bkjia.com/PHPjc/904017.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/904017.html技術記事この記事では、Thinkphp の複数ファイル アップロードの実装方法を例とともに説明し、参考として皆さんに共有します。具体的な実装方法は以下の通りです: Thinkphp のマニュアルでは...