后盾网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模块框, ...
 
随机推荐
- Vue之动态class写法总结
			
对象方法 最简单的绑定 :class="{ 'active': isActive }" 判断是否绑定一个active :class="{'active':isActive ...
 - 浅尝https
			
HTTPS http超文本传输协议,所以的东西都是明文传输,容易被拦截,被攻击,我们希望能对通话内容进行加密,那么因此而生,出现了https https:在http的基础上新增加了SSL层 先放图 / ...
 - Vue开发——实现吸顶效果
			
因为项目需求,最近开始转到微信公众号开发,接触到了Vue框架,这个效果的实现虽说是基于Vue框架下实现的,但是同样也可以借鉴到其他地方,原理都是一样的. 进入正题,先看下效果图: 其实js做这个效果还 ...
 - js鼠标点击特效,有关参数设置
			
效果图,用的faststone--录像--togif,黄色圆圈实际是不显示的 博客后台管理设置 本地新建一个demo.html文件,可以自行测试,要引入jquery文件哦 来个“红橙黄绿蓝靛紫”的点击 ...
 - 解决 webpack 打包文件体积过大
			
webpack 把我们所有的文件都打包成一个 JS 文件,这样即使你是小项目,打包后的文件也会非常大.下面就来讲下如何从多个方面进行优化. 去除不必要的插件 刚开始用 webpack 的时候,开发环境 ...
 - Oracle VM VirtualBox 安装 Centos7 并配置静态IP
			
新建虚拟电脑 选择类型和版本 设置内存大小 现在创建虚拟硬盘 选择VDI 硬盘足够就选择 固定大小 选择虚拟硬盘存储位置不要放在默认的C盘下,设置大小为30G 等待创建虚拟硬盘 虚拟硬盘创建成果之后 ...
 - java-第三方包没有打进war包里面
			
java-web的项目中引用第三方的jar包,在打成war包部署测试,出现报错,提示找不到引用的jar 解决方案: 1.在eclipse的项目--右键属性---deployment assembly- ...
 - commons Collections4 MultiMap
			
MultiMap<String, Integer> multiMap = new MultiValueMap<>(); multiMap.put("A", ...
 - zabbix 邮件报警事件:Zabbix discoverer processes more than 75% busy
			
Problem has been resolved at :: on Problem name: Zabbix discoverer processes more than % busy Host: ...
 - springboot中使用filter
			
通过注解的方式实现filter过滤器. 创建Filter包,并在该包下创建MyFilter 示例代码: package com.bjpowernode.springboot.filter; impor ...