ホームページ >バックエンド開発 >PHPチュートリアル >Thinkphp3.2の問題を分析して複数ファイルアップロードと1ファイルのみアップロードの問題を単純に解決
次の記事では、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 IndexController.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 この名前が信頼できないと思われる場合は、
2 番目の方法を採用できます:
$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'), );Set $config: 'saveName' => array('uniqid', mt_rand(1,999999).'_'.md5(uniqid())),最後の結果は次のとおりです同様: 672563_30ad4d8a2aafc832363de8edc1940b5c59c8d44a303f9.jpg
ThinkPHP3.2.3 検証コードの表示と更新とverify
THinkPHP でクライアント IP と IP アドレスのクエリを取得する方法
以上がThinkphp3.2の問題を分析して複数ファイルアップロードと1ファイルのみアップロードの問題を単純に解決の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。