TP框架配合jquery进行3种方式的多图片上传

用的TP5.1框架+jquery

一 使用form表单方式进行多图片上传

html代码:

 <form action="../admin/admin/cs" enctype="multipart/form-data" method="post">
       <input type="file" name="image[]" /> <br>
       <input type="file" name="image[]" /> <br>
       <input type="file" name="image[]" /> <br>
       <input type="button" value="上传" id="imgbtn"/>
</form>

  ../admin/admin/cs的PHP代码:


public function cs()
{
// 获取表单上传文件
$files = request()->file('image');

$file_path = ENV::get('root_path') . 'public/ab';

!file_exists($file_path) && mkdir($file_path, 0755, true);

foreach($files as $file){

//move后面加个'',代表使用图片原文件名,不用则生成随即文件名可
$info = $file->move($file_path, '');

if(!$info) echo $file->getError();
}
}

 

 

二 使用file的多文件上传属性进行多图片上传

html代码:

<input type="file" accept="image/*" multiple="multiple" onchange="upload(this)"/>

 jquery代码:

let fd = new FormData();

function upload(_this) {

    let filelist = _this.files;

    let l = filelist.length;
  
  //循环将文件全部追加到fd中
    for(i = 0; i < l; i++) fd.append("image[]", filelist[i]);

    $.ajax({
        type: "POST",
        url: "../admin/admin/cs", //这个PHP代码还是上面那个
        data: fd,
        processData : false,
        contentType : false,
        success: function(res){
            console.log(res);
        }
    });
}

  

我选了3个文件,分别是03.jpg     04.jpg      05.jpg

 

 

 

选好之后显示3个文件,文件夹中也成功添加了3个对应的文件,我帮你们看了下,确实是刚才选择的那3张图片

 

 

 

三 利用多个file类型input进行ajax无刷新上传

html代码:

<input type="file" accept="image/*"  onchange="upload(this)"/>
<input type="file" accept="image/*"  onchange="upload(this)"/>
<input type="file" accept="image/*"  onchange="upload(this)"/>
<input type="button" id="btn" value="上传">

query代码:

    let fd = new FormData();

    function upload(_this) {
     //上面是多个文件,这里是一个文件,所以在files后面加个[0]
        fd.append("image[]", _this.files[0])
    };

    $('#btn').click(() =>{
        $.ajax({
            type: "POST",
            url: "../admin/admin/cs", //还是之前那个PHP代码
            data: fd,
            processData : false,
            contentType : false,
            success: function(res){

                console.log(res);
            }
        });
    })

  

 

 

 

四 这是我在平时项目开发中使用过的,现在进行一个总结,希望能帮到各位

 

posted @ 2019-10-17 00:04  落华  阅读(801)  评论(0编辑  收藏  举报