多图片Ajax上传

Posted catyxiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多图片Ajax上传相关的知识,希望对你有一定的参考价值。

控制器代码

public function multiUploadImg( Request $request ,$ordersn,$step,$stion)

        // 重组数组,子函数
        function reArrayFiles( $file_post ) 

            $file_ary = array();
            $file_count = count($file_post[‘name‘]);
            $file_keys = array_keys($file_post);

            for ($i=0; $i<$file_count; $i++) 
                foreach ($file_keys as $key) 
                    $file_ary[$i][$key] = $file_post[$key][$i];
                
            

            return $file_ary;
        

        $imgFiles = $_FILES[‘filesToUpload‘]; // 与前端页面中的 input name=“filesToUpload[]” 相对应
        $uploadedFiles = array(); // 返回值

        if(!empty($imgFiles))
        
            $img_desc = reArrayFiles( $imgFiles );
            $destinationPath = ‘uploads/‘; //public 文件夹下面建 storage/uploads 文件夹
           $imgs=‘‘;//图片Url地址
            foreach( $img_desc as $img )
            
                $savedFile = $destinationPath.uniqid().$ordersn.‘.‘.pathinfo( $img[‘name‘], PATHINFO_EXTENSION );
                move_uploaded_file($img[‘tmp_name‘],  $savedFile);
                $img[‘savedFile‘] = $savedFile ;
                $imgs.=$savedFile.‘;‘;
                array_push( $uploadedFiles, $img );
            

        $allowed_extensions = ["png", "jpg", "gif"];
        // TODO 判断文件类型

        return [‘uploadedFiles‘ => $uploadedFiles ];
    

前端提交代码

<form method="post" enctype="multipart/form-data">
   <input name="filesToUpload[]" accept="image/*" id="settlement_authorize" data-show="showsettlement_authorize" data-for="settlement_authorize"
           class=" weui-uploader__input input_multifileSelect" type="file" multiple>
</form>

JS提交代码

<script>
    $(document).ready(function () 
        $(‘.input_multifileSelect‘).on(‘change‘, function () 
            var stion = $(this).attr(‘data-for‘);
            var showdiv = $(this).attr(‘data-show‘);
            var step = 4;
            var ajax_option = 
                url: "url("/staff/file/uploads/$data->ordersn")/" + step + "/" + stion,
                // type : ‘post‘, 默认是 form action
                success: function (data) 
                    console.log(data);
                    showUploadedImgs(data.uploadedFiles, step, showdiv, "url("/staff/file/delete/$data->ordersn")", stion);
                
            
            $(this).parent().ajaxSubmit(ajax_option);
        );

    );
</script>

 

以上是关于多图片Ajax上传的主要内容,如果未能解决你的问题,请参考以下文章

基于HTML5的可预览多图片Ajax上传

js+ajax 上传多图片,并删除

js+ajax 上传多图片,并删除

多图片Ajax上传

基于HTML5的可预览多图片Ajax上传(转)

在php中使用jquery uploadify进行多图片上传