多图片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上传的主要内容,如果未能解决你的问题,请参考以下文章