ファイルのアップロード: ファイルのアップロード: ファイルのアップロード: ファイルのアップロード:
ホームページ >バックエンド開発 >PHPチュートリアル >Thinkphp3.2は、複数のファイルをアップロードするときに1つのファイルだけをアップロードする問題を解決します
html 単純なページ:
index.html コード:
<form action="{:U('index/upload')}" method="post" enctype="multipart/form-data"> 文件上传:<input type="file" name = "test[]"> 文件上传:<input type="file" name = "test[]"> 文件上传:<input type="file" name = "test[]"> 文件上传:<input type="file" name = "test[]"> 文件上传:<input type="file" name = "test[]"> 文件上传:<input type="file" name = "test[]"> 文件上传:<input type="file" name = "test[]"> 文件上传:<input type="file" name = "test[]"> 文件上传:<input type="file" name = "test[]"> 文件上传:<input type="file" name = "test[]"> 文件上传:<input type="file" name = "test[]"> 文件上传:<input type="file" name = "test[]"> <input type="submit" value = "提交"></form>
Controller IndexCo ntroller.class.php コード:
<?php namespace Home\Controller;use Think\Controller;class IndexController extends Controller { public function index(){ $this->display(); } public function upload(){ if(IS_POST){ $config = array( 'maxSize' => 3145728, 'rootPath' => './Uploads/', 'savePath' => '', 'saveName' => array('uniqid', mt_rand(1,999999).'_'.md5(uniqid())), 'exts' => array('jpg', 'gif', 'png', 'jpeg'), 'autoSub' => true, 'subName' => array('date','Ymd'), ); $upload = new \Think\Upload($config);// 实例化上传类 $info = $upload->upload(); if(!$info) { $this->error($upload->getError()); }else{ foreach($info as $file){ echo $file['savepath'].$file['savename']; } } }else{ $this->display(); } } }
アップロード結果は次のように表示されます:
たくさんの人が来ています複数のファイルをアップロードすると、最終的に 1 つしかアップロードされていないことがわかりました。これは主に名前が同じであるため、最終的に 1 つだけ写真が残っていたためです。$config = array( 'maxSize' => 3145728, 'rootPath' => './Uploads/', 'exts' => array('jpg', 'gif', 'png', 'jpeg'), 'autoSub' => true, 'subName' => array('date','Ymd'), 'saveRule' => '', );空白のまま $ config の saveRule、アップロード後の名前は次のとおりです: 59c8d38cdb968.jpg
$config = array( 'maxSize' => 3145728, 'rootPath' => './Uploads/', 'saveName' => array('uniqid', mt_rand(1,999999).'_'.md5(uniqid())), 'exts' => array('jpg', 'gif', 'png', 'jpeg'), 'autoSub' => true, 'subName' => array('date','Ymd'), );$ に設定config: 'saveName' => ; array('uniqid', mt_rand(1,999999).'_'.md5(uniqid())),
最終的な結果は次のようになります: 672563_30ad4d8a2aafc832363de8edc1940b5c59c8d44a303f9.jpg
のもちろん、名前は必要に応じて変更できます。複数のファイルをアップロードする方法はたくさんありますが、ここでは簡単で便利な方法を紹介します。
以上がThinkphp3.2は、複数のファイルをアップロードするときに1つのファイルだけをアップロードする問題を解決しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。