ajax + Laravel 多文件上传
发布时间:2020-12-15 21:06:58 所属栏目:百科 来源:网络整理
导读:路由 C:L2017.11.15 MAMProottagMoonroutesweb.php Route::post( '/multiUploadImg' , 'UploadCtrl@multiUploadImg' );Route:: get ( '/upload' , function () { return view( 'upload.main' );}); 前端 C:L2017.11.15 MAMProottagMoonresources
路由
Route::post('/multiUploadImg','UploadCtrl@multiUploadImg');
Route::get('/upload',function(){
return view('upload.main');
});
前端
截屏before : (权简风格 :) after : html<form id="form_uploadImg" method="post" enctype="multipart/form-data">
<div class="file-field">
<div class="btn btn-primary btn-sm">
<span>Choose files</span>
<input name="filesToUpload[]" id="input_multifileSelect" type="file" multiple>
</div>
</div>
</form>
<br><br><br>
<div id="div_uploadedImgs"></div>
!!! 注意下面这一句,必须要有一对方括号:[] <input name="filesToUpload[]"
js$(document).ready(function() {
$('#input_multifileSelect').on('change',function(){
var ajax_option= {
url: "multiUploadImg",// type : 'post',默认是 form action
success: function ( data ) {
console.log( data );
showUploadedImgs( data.uploadedFiles );
}
}
$('#form_uploadImg').ajaxSubmit( ajax_option );
});
});
// 显示上传的图片
function showUploadedImgs( imgs ){
$.each( imgs,function(index,img ) {
var pic = '<p><img src="{0}" alt="" /><br>{0} ( {1} - {2} )</p>';
pic = pic.format( baseUrl + 'public/' + img.savedFile,img.name,img.size );
$('#div_uploadedImgs').prepend( pic );
});
}
// 为 String 类增加 format 函数
String.prototype.format = function() {
var str = this;
for (var i = 0; i < arguments.length; i++) {
var reg = new RegExp("{" + i + "}","gm");
str = str.replace(reg,arguments[i]);
}
return str;
}
控制器(Controller)
/** * 接收上传文件 * @param Request $request * @return array */
public function multiUploadImg( Request $request ){
// 重组数组,子函数
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 = 'storage/uploads/'; //public 文件夹下面建 storage/uploads 文件夹
foreach( $img_desc as $img )
{
$savedFile = $destinationPath.date('YmdHis',time()).mt_rand().'.'.pathinfo( $img['name'],PATHINFO_EXTENSION );
move_uploaded_file($img['tmp_name'],$savedFile);
$img['savedFile'] = $savedFile ;
array_push( $uploadedFiles,$img );
}
}
$allowed_extensions = ["png","jpg","gif"];
// TODO 判断文件类型
return ['uploadedFiles' => $uploadedFiles ];
}
responsenote
gif videodownloadhttp://download.csdn.net/download/lmn13/10244238 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |