后盾网lavarel视频项目---图片上传
后盾网lavarel视频项目---图片上传
一、总结
一句话总结:
前端还是普通的前端操作,前端上传图片的地址就是图片上传的路由,后端代码也很简单
public function uploader(Request $request){
$upload = $request->file;
if ($upload->isValid()) {
$path = $upload->store(date('ym'), 'attachment');
//message是上传成功的url地址
return ['valid' => 1, 'message' => asset('attachment/'.$path)];
}
return ['valid' => 0, 'message' => '上传失败文件大小不能超过2MB'];
}
1、图片上传后端核心代码?
1、$upload = $request->file;
2、if ($upload->isValid()) {
3、$path = $upload->store(date('ym'), 'attachment');
public function uploader(Request $request){
$upload = $request->file;
if ($upload->isValid()) {
$path = $upload->store(date('ym'), 'attachment');
//message是上传成功的url地址
return ['valid' => 1, 'message' => asset('attachment/'.$path)];
}
return ['valid' => 0, 'message' => '上传失败文件大小不能超过2MB'];
}
二、图片上传
lavarel文档位置:
https://learnku.com/docs/laravel/5.7/requests/2257#retrieving-uploaded-files
1、修改配置,设置存储引擎
config/filesystems.php
'disks' => [
//fry增加的
'attachment' => [
'driver' => 'local',
'root' => 'attachment',
],
增加了attachment存储引擎
2、控制器中代码
app/Http/Controllers/Component/UploadController.php
<?php namespace App\Http\Controllers\Component; use Illuminate\Http\Request;
use App\Http\Controllers\Controller; class UploadController extends Controller
{
public function uploader(Request $request){
$upload = $request->file;
if ($upload->isValid()) {
$path = $upload->store(date('ym'), 'attachment');
//message是上传成功的url地址
return ['valid' => 1, 'message' => asset('attachment/'.$path)];
} return ['valid' => 0, 'message' => '上传失败文件大小不能超过2MB'];
} public function filesLists(){
return ['data' => [], 'page' => ''];
}
}
3、路由
routes/web.php
//文件上传路由
Route::any('/component/uploader','Component\UploadController@uploader');
Route::any('/component/filesLists','Component\UploadController@filesLists');
4、视图
<div class="form-group">
<label for="preview" class="col-sm-2 control-label">预览图</label>
<div class="col-sm-10">
<div class="input-group">
<input type="text" class="form-control" name="preview" readonly=""
value="images/nopic.jpg" required>
<div class="input-group-btn">
<button onclick="upImage(this)" class="btn btn-default"
type="button">选择图片
</button>
</div>
</div>
<div class="input-group" style="margin-top:5px;">
<img src="{{asset('images/nopic.jpg')}}"
class="img-responsive img-thumbnail" width="150">
<em class="close" style="position:absolute; top: 0px; right: -14px;"
title="删除这张图片" onclick="removeImg(this)">×</em>
</div>
</div>
<script>
//上传图片
function upImage(obj) {
require(['util'], function (util) {
options = {
multiple: false,//是否允许多图上传
};
util.image(function (images) { //上传成功的图片,数组类型
$("[name='preview']").val(images[0]);
$(".img-thumbnail").attr('src', images[0]);
}, options)
});
} //移除图片
function removeImg(obj) {
$(obj).prev('img').attr('src', 'resource/images/nopic.jpg');
$(obj).parent().prev().find('input').val('');
}
</script>
</div>
hdjs配置
<!-- 后端js -->
<script>
//HDJS组件需要的配置
hdjs = {
'base': '/node_modules/hdjs',
'uploader': '/component/uploader',
'filesLists': '/component/filesLists?',
'removeImage': '?s=component/upload/removeImage&m=member&siteid=18',
'ossSign': '?s=component/oss/sign&m=member&siteid=18',
};
</script>
<script src="/node_modules/hdjs/require.js"></script>
<script src="/node_modules/hdjs/config.js"></script>
<link href="/css/hdcms.css" rel="stylesheet">
5、效果


attachment目录下的1909里面就是上传好的图片
后盾网lavarel视频项目---图片上传的更多相关文章
- 后盾网lavarel视频项目---lavarel多表关联一对多操作实例
后盾网lavarel视频项目---lavarel多表关联一对多操作实例 一.总结 一句话总结: 1.一对多中多那个部分的数据前端通过json弄到服务器 2.所有通过一操作多的时候,都要用上模型中定义的 ...
- 后盾网lavarel视频项目---Vue项目使用vue-awesome-swiper轮播插件
后盾网lavarel视频项目---Vue项目使用vue-awesome-swiper轮播插件 一.总结 一句话总结: vue中的插件的使用和js插件的使用一样的简单,只是vue插件的引入过程有些不同 ...
- 后盾网lavarel视频项目---4、lavarel和vue都是{{}}表示变量,如何解决冲突
后盾网lavarel视频项目---4.lavarel和vue都是{{}}表示变量,如何解决冲突 一.总结 一句话总结: @{{videos}}:@符号表示lavarel不处理:textarea nam ...
- 后盾网lavarel视频项目---3、lavarel中子控制器继承父控制器以判断是否登录
后盾网lavarel视频项目---3.lavarel中子控制器继承父控制器以判断是否登录 一.总结 一句话总结: 在common控制器的构造方法中验证登录中间件,其它的控制器继承common控制器 p ...
- 后盾网lavarel视频项目---1、数据迁移
后盾网lavarel视频项目---1.数据迁移 一.总结 一句话总结: 1.lavarel的数据迁移比较简单,就是用php来创建数据表 2.创建迁移文件:php artisan make:migrat ...
- 后盾网lavarel视频项目---5、淘宝镜像cnpm的原理及如何使用
后盾网lavarel视频项目---5.淘宝镜像cnpm的原理及如何使用 一.总结 一句话总结: 原理:把npm上面的所有软件copy过来 使用:npm install -g cnpm --regist ...
- 后盾网lavarel视频项目---lavarel使用模型进行增删改查操作
后盾网lavarel视频项目---lavarel使用模型进行增删改查操作 一.总结 一句话总结: 使用模型操作常用方法 查一条:$model=Tag::find($id); 删一条:Tag::dest ...
- 后盾网lavarel视频项目---Laravel 安装代码智能提示扩展「laravel-ide-helper」
后盾网lavarel视频项目---Laravel 安装代码智能提示扩展「laravel-ide-helper」 一.总结 一句话总结: laravel-ide-helper作用是:代码提示 larav ...
- 后盾网lavarel视频项目---laravel 使用laracasts/flash插件提示信息
后盾网lavarel视频项目---laravel 使用laracasts/flash插件提示信息 一.总结 一句话总结: laracasts/flash插件的效果就是一个弹出的boostrap模块框, ...
随机推荐
- 牛客挑战赛32E 树上逆序对
nowcoder 口胡一时爽 先从这个逆序对的性质入手,手玩可以发现对于一对具有祖先关系节点的点,只有权值绝对值大的才能对这一对点是否为逆序对造成影响.具体来讲,如果祖先点权值大,并且取正号,那么其后 ...
- 这38个小技巧告诉你如何快速学习MySQL数据库2
1.如何快速掌握MySQL? ⑴培养兴趣兴趣是最好的老师,不论学习什么知识,兴趣都可以极大地提高学习效率.当然学习MySQL 5.6也不例外.⑵夯实基础计算机领域的技术非常强调基础,刚开始学习可能还认 ...
- Kerberos身份验证访问Web HttpFS
原文出处: https://www.ibm.com/support/knowledgecenter/en/SSPT3X_3.0.0/com.ibm.swg.im.infosphere.biginsig ...
- js 数据类型的判断
1. typeof 运算符 typeof 可以判断基本数据类型: typeof 123; // "number" typeof 'abc'; // "string&quo ...
- Java爬取并下载酷狗音乐
本文方法及代码仅供学习,仅供学习. 案例: 下载酷狗TOP500歌曲,代码用到的代码库包含:Jsoup.HttpClient.fastJson等. 正文: 1.分析是否可以获取到TOP500歌单 打开 ...
- 关于sqlmap的两个小坑
i春秋作家:__LSA__ 0x00 概述 近日在利用sqlmap注入测试时遇到一个奇怪的现象,高版本sqlmap无法检测出注入,但是低版本的可以测出注入,并且能跑出数据不是误报,经过对比测试和查看s ...
- poj 2033 Alphacode (dp)
Alphacode Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 13378 Accepted: 4026 Descri ...
- Redis位操作介绍
在学习redis的过程了,看到了redis还能用于大数据处理,具体场景如下:腾讯10亿用户,要几个毫秒内查询到某个用户是否在线,你能怎么做?千万别说给每个用户建立一个key,然后挨个记(你可以算一下需 ...
- 普元 BPS表结构参考
BPS表结构 BPS默认采用数据库方式对业务流程的定义以及运行期的流程实例.活动.工作项等进行持久化存储.主要包括BPS流程流转相关的定义.实例.工作项.参与者相关的数据表以及和实际业务流程控制相关的 ...
- dedecms织梦移站后替换数据库中文件路径命令
1.系统设置路径替换 update dede_sysconfig set value='http://afish.cnblogs.com' where varname='cfg_basehost'; ...