Laravel+Layer实现图片上传功能(整理篇)
♩ 背景昨天在自己的 500报错♪ 分析⒈ 问题所在最后将核心代码摘出,放到 ⒉ 解决方案一般在表单提交时,都会存放一个隐藏的输入框 或者在需要提交的表单中补充一行代码: 但是,在比较单一的元素进行 ①. 页面中添加隐藏域 ②. ajax 请求前,先获取 ③. ajax 请求时,将该值作为数据的一部分传输过去,例如: ♫ 实现步骤⒈ 源文件目录⒉ 前端准备
⒊ 后端处理因为前端 Layer 默认的是 0) { // 出错
$message = $file_error;
} elseif($file_size > 1048576) { // 文件太大了
$message = "上传文件不能大于1MB";
}else{
$date = date('Ymd');
$file_name_arr = explode('.',$file_name);
$new_file_name = date('YmdHis') . '.' . $file_name_arr[1];
$path = "upload/".$date."/";
$file_path = $path . $new_file_name;
if (file_exists($file_path)) {
$message = "此文件已经存在啦";
} else {
//TODO 判断当前的目录是否存在,若不存在就新建一个!
if (!is_dir($path)){mkdir($path,0777);}
$upload_result = move_uploaded_file($file_tmp,$file_path);
//此函数只支持 HTTP POST 上传的文件
if ($upload_result) {
$status = 1;
$message = $file_path;
} else {
$message = "文件上传失败,请稍后再尝试";
}
}
}
} else {
$message = "参数错误";
}
return showMsg($status,$message);
【注意】: 使用下载的源码文件时,可将该处的核心代码进行替换补充公共函数 $status,'message' =>$message,'data' =>$data
);
exit(json_encode($result));
}
⒋ 实现效果♬ 补充 PHP 的原生开发或其他流行框架,其实只要后台能接收到 后端代码的图片上传功能属于原生程序,可自行优化,建议使用流行框架所推荐的集成方法。 ⒉ 对于上述的代码,需要注意一点 : 如果图片所上传的目录不存在,很可能会报错,所以需要判断当前情况,若不存在,要建立新目录 ⒊ Laravel 中的处理 作为 PHP 开发的流行框架,必然做了对文件上传功能的集成,文件的上传,可参考学习文档,以本人的处理为例: ⑴. 相对于使用默认的上传方法,会将文件存放到 ⑵. 可参考我之前的一篇文章—— Laravel 文件上传功能实现 ,打开配置文件 [
'driver' => 'local','root' => public_path('upload/image/'.date('Ymd')),],
⑶. 相对应的后台核心处理代码则为: method()== 'POST') {
$date = date('Ymd');
$path = $request->file('file')->store('','upload');
if ($path){
$fileUrl = '/upload/image/'.$date.'/'.$path;
$status = 1;
$data['url'] = $fileUrl;
$message = '上传成功';
}else{
$message = "上传失败";
}
} else {
$message = "参数错误";
}
return showMsg($status,$message,$data);
}
如此一来,上传的图片所在目录为: ☺ 源码下载 总结以上所述是小编给大家介绍的Laravel+Layer实现图片上传功能(整理篇),希望对大家有所帮助。程序员遇到问题都会上(编程之家52php.cn)查找问题解答方法!如果觉得站点还不错,随手转发给程序员朋友一下! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |