Acrobat XI 自动关闭

出处:http://tieba.baidu.com/p/6487351444?red_tag=i1920764958

Win10系统

方案一

左下角菜单打开后搜索“防火墙和系统保护”→找到并点击“高级设置”→点击“出站规则”→点击“新建规则”→要创建的规则类型“程序”,下一步→此程序路径,默认路径是“C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe”,建议点击“浏览”,自己去去找到Adobe Reader安装目录下AcroRd32这个程序,下一步→“阻止连接”,下一步→何时应用该规则,全选,下一步→自己取个名称,例如“Adobe ReaderXI阻止出站连接”,完成。
然后再试试打开PDF文件是否5-10秒退出,我自己的完美解决~供参考

 

断网有用感谢!估计是官方后台连接搞得鬼!我用的方法是: 开始-控制面板-系统和安全-Windows防火墙-高级设置-出站规则-新建规则-程序-下一步-此程序路径-下一步-阻止连接-何时应用该规则 ?(全选)-下一步-自定义一个名称-完成。重启! (我搞了半天才搞定,希望大家也有用

方案二

在C:\Windows\System32\drivers\etc\hosts 文件里添加项
127.0.0.1 acroipm.adobe.com       #阻止adobe reader的网问题解决

composer 笔记

Composer (on Windows) – Either the ‘extension_dir’ value is incorrect or the dll does not exist.

  1. 复制 php.ini-development 文件并重命名为 php.ini
  2. 去掉 extension=php_openssl.dll 前的;号(约880~900行处)
  3. 去掉 extension_dir = “ext”前的;号(约800行处)

数据库连接字符串 ConnectionString

参考:https://www.devexpress.com/Support/Center/Question/Details/K18445/how-to-create-a-correct-connection-string-for-xpo-providers

AccessConnectionProvider: MSAccess
XpoProvider=MSAccess;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;
DataSetDataStore: XmlDataSet
XpoProvider=XmlDataSet;Data Source=C:\mydatabase.xml;Read Only=false
InMemoryDataStore: InMemoryDataStore
XpoProvider=InMemoryDataStore;Data Source=C:\mydatabase.xml;Read Only=false
MSSqlConnectionProvider: MSSqlServer
XpoProvider=MSSqlServer;Data Source=(local);User ID=username;Password=password;Initial Catalog=database;Persist Security Info=true
AdvantageConnectionProvider: Advantage
XpoProvider=Advantage;Data Source=\myserver\myvolume\mypat\mydd.add;ServerType=local;User ID=ASSSYS;TrimTrailingSpaces=true
AsaConnectionProvider: Asa
XpoProvider=Asa;Uid=MyUsername;PWD=MyPassword;DBF=c:\mydatabase.db;Persist Security Info=true
AseConnectionPrvider: Ase
XpoProvider=Ase;Port=5000;Data Source=MyAseServer;User ID=MyUserName;Password=MyPassword;Initial Catalog=MyDatabase;Persist Security Info=true
DB2ConnectionProvider: DB2
XpoProvider=DB2;Server=MyAddress:MyPortNumber;User ID=MyUserName;Password=MyPassword;Database=MyDatabase;Persist Security Info=true
FirebirdConnectionProvider: Firebird
XpoProvider=Firebird;DataSource=localhost;User=SYSDBA;Password=masterkey;Database=MyDatabase.fdb;ServerType=0;Charset=NONE
MSSqlCEConnectionProvider: MSSqlServerCE
XpoProvider=MSSqlServerCE;Data Source=MyDatabase.sdf;Password=MyPassword
MySqlConnectionProvider: MySql
XpoProvider=MySql;Server=MyServerAddress;User ID=MyUserName;Password=MyPassword;Database=MyDatabase;Persist Security Info= true;Charset=utf8
ODPConnectionProvider: ODP
XpoProvider=ODP;Data Source=TORCL;User ID=MyUserName;Password=MyPassword
ODPManagedConnectionProvider: ODPManaged
XpoProvider=ODPManaged;Data Source=TORCL;User ID=MyUserName;Password=MyPassword
OracleConnectionProvider: Oracle
XpoProvider=Oracle;Data Source=TORCL;User ID=MyUserName;Password=MyPassword
PervasiveSqlConnectionProvider: Pervasive
XpoProvider=Pervasive;Server=MyServerAddress;UID=MyUserName;PWD=MyPassword;ServerDSN=MyDatabase
PostgreSqlConnectionProvider: Postgres
XpoProvider=Postgres;Server=127.0.0.1;User ID=MyUserName;Password=MyPassword;Database=MyDatabase;Encoding=UNICODE
SQLiteConnectionProvider: SQLite
XpoProvider=SQLite;Data Source=filename
VistaDBConnectionProvider: VistaDB
XpoProvider=VistaDB;Data Source=C:\mydatabase.vdb4
VistaDB5ConnectionProvider: VistaDB5
XpoProvider=VistaDB5;Data Source=C:\mydatabase.vdb5

laravel 笔记

1、blade 模板,模型关联为空值时,如何传值?

根据 $product->brand的值,显示对应名称

product.blade.php

productitem.blade.php

2、目录权限

在安装 Laravel 后,你可能需要配置一些权限。 storagebootstrap/cache 目录在你的 web 服务下应该是可写的权限,否则 Laravel 将无法运行。如果你用的是 Homestead 虚拟机,这些权限应该已经设置好了。

3、php 安装 fileInfo扩展


4、提示“The Mix manifest does not exist.”

参考:https://xueyuanjun.com/post/19944.html

检查 public目录下是否有mix-manifest.json 文件,没有的话,通过以下步骤生成

1)检查 node,npm是否正确安装。
2)运行 npm install,Windows系统运行 npm install --no-bin-links
3)运行 Mix,npm run production

Thinkphp 文件上传

1、路由

Route::rule('fileUpload/:dir','index/FileUpload/index');

2、页面主要内容

 $('#exampleModal').on('show.bs.modal', function (event) {
            var button = $(event.relatedTarget)
            var imgpath = button.data('imgpath')
            var title = button.data('imgtitle')
            var info = button.data('productinfo')
            var productid = button.data('productid')


            if (productid === undefined) {
                window.alert("productid 未定义");
            }

            var modal = $(this)
            modal.find('.modal-title').text(title)
            //单图
            //modal.find('.modal-body img').attr('src',imgpath)                     
            modal.find('.modal-footer .info').text(info)

            //设置当前 productid
            modal.find('#productid').attr('value', productid)

            //设置上传表单productid
            modal.find('#productid').attr('value', productid)

            //清空元素
            modal.find('.carousel-indicators').empty()
            modal.find('.carousel-inner').empty()

            var productid = $('#productid').attr('value');
            var formData = new FormData();
            formData.append('productid', productid);
            formData.append('refresh', 1);

            $.ajax({
                type: 'post',
                cache: false,
                url: '/index.php/fileUpload/product',
                data: formData,
                processData: false,  // 不处理数据
                contentType: false,   // 不设置内容类型
                dataType: "json",
                success: function (data) {
                    if (data['status'] == 1) {
                        var modal = $('#exampleModal')
                        var images = data['images']// button.data('images')

                        var init = true;

                        //重新添加图片
                        for (var key in images) {
                            if (init) {
                                modal.find('.carousel-indicators').append("<li data-target=\"#carouselExampleIndicators\" data-slide-to=\"" + key + "\" class=\"active\"></li>")
                                modal.find('.carousel-inner').append(" <div class=\"carousel-item active\"> <center><img class=\"ProductImages\" src=\"" + images[key]['file_path'] + "\"/></center> </div>")
                                init = false;
                            } else {
                                modal.find('.carousel-indicators').append("<li data-target=\"#carouselExampleIndicators\" data-slide-to=\"" + key + "\"></li>")
                                modal.find('.carousel-inner').append(" <div class=\"carousel-item\"> <center><img class=\"ProductImages\" src=\"" + images[key]['file_path'] + "\"/></center> </div>")
                            }
                        }
                    } else {
                        alert("更新出错")
                    }
                },
                error: function (data) {
                    alert('更新出错');
                }
            })
        })

        $('#submit').on('click', function (event) {
            var formData = new FormData();
            formData.append('image', $('#file')[0].files[0]);
            formData.append('productid', $('#productid').attr('value'));
            formData.append('refresh', 0);
            $.ajax({
                type: 'post',
                cache: false,
                url: '/index.php/fileUpload/product',
                data: formData,
                processData: false,  // 不处理数据
                contentType: false,   // 不设置内容类型
                dataType: "json",
                success: function (data) {
                    if (data['status'] == 1) {
                        var modal = $('#exampleModal')
                        var images = data['images']// button.data('images')

                        //清空元素
                        modal.find('.carousel-indicators').empty()
                        modal.find('.carousel-inner').empty()

                        //重新添加图片
                        for (var key in images) {
                            //确保刚上传的文件被激活
                            if (key == (images.length - 1)) {
                                modal.find('.carousel-indicators').append("<li data-target=\"#carouselExampleIndicators\" data-slide-to=\"" + key + "\" class=\"active\"></li>")
                                modal.find('.carousel-inner').append(" <div class=\"carousel-item active\"> <center><img class=\"ProductImages\" src=\"" + images[key]['file_path'] + "\"/></center> </div>")
                            } else {
                                modal.find('.carousel-indicators').append("<li data-target=\"#carouselExampleIndicators\" data-slide-to=\"" + key + "\"></li>")
                                modal.find('.carousel-inner').append(" <div class=\"carousel-item\"> <center><img class=\"ProductImages\" src=\"" + images[key]['file_path'] + "\"/></center> </div>")
                            }
                        }

                        // alert('上传完成!')
                    } else {
                        alert('上传错误')
                    }
                },
                error: function (data) {
                    alert('上传错误');
                }
            })
        })
    })
//...
    <div class="ProductPreview">
        {notempty name='$product.qrcode.file_path')}
        <img src="{$product.qrcode.file_path}" data-toggle="modal" data-target="#exampleModal" data-imgpath="{$product.qrcode.file_path}"
            data-imgtitle="{$product.name}" data-productinfo="{$product.type.name} / {$product.model}" data-images="{$product.images}"
            data-productid="{$product.id}">
        </a>
        {else/}
        <img data-toggle="modal" data-target="#exampleModal" data-imgpath="{$product.qrcode.file_path}" data-imgtitle="{$product.name}"
            data-productinfo="{$product.type.name} / {$product.model}" data-images="{$product.images}" data-productid="{$product.id}">
        </a>
        {/notempty}
    </div>
//...
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
    <div class="modal-dialog modal-dialog-centered" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="exampleModalLongTitle">Modal title</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body">
                <!-- 单图 -->
                <!--
                    <center><img src="" style="width:auto;height:auto;max-height:300px;max-width:100%;" /></center>
                -->

                <!-- 多图 -->

                <div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
                    <ol class="carousel-indicators">
                        <!--
                        <li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
                        <li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
                        <li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
                        -->
                    </ol>
                    <div class="carousel-inner">
                        <!-- 原案例 -->
                        <!--
                          <div class="carousel-item active">
                            <img class="d-block w-100" src="data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%22800%22%20height%3D%22400%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20800%20400%22%20preserveAspectRatio%3D%22none%22%3E%3Cdefs%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E%23holder_164b27b1eb7%20text%20%7B%20fill%3A%23555%3Bfont-weight%3Anormal%3Bfont-family%3AHelvetica%2C%20monospace%3Bfont-size%3A40pt%20%7D%20%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cg%20id%3D%22holder_164b27b1eb7%22%3E%3Crect%20width%3D%22800%22%20height%3D%22400%22%20fill%3D%22%23777%22%3E%3C%2Frect%3E%3Cg%3E%3Ctext%20x%3D%22285.921875%22%20y%3D%22217.7%22%3EFirst%20slide%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E" alt="First slide">
                          </div>
                          <div class="carousel-item">
                            <img class="d-block w-100" src="data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%22800%22%20height%3D%22400%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20800%20400%22%20preserveAspectRatio%3D%22none%22%3E%3Cdefs%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E%23holder_164b27b1eb7%20text%20%7B%20fill%3A%23555%3Bfont-weight%3Anormal%3Bfont-family%3AHelvetica%2C%20monospace%3Bfont-size%3A40pt%20%7D%20%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cg%20id%3D%22holder_164b27b1eb7%22%3E%3Crect%20width%3D%22800%22%20height%3D%22400%22%20fill%3D%22%23777%22%3E%3C%2Frect%3E%3Cg%3E%3Ctext%20x%3D%22285.921875%22%20y%3D%22217.7%22%3EFirst%20slide%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E" alt="Second slide">
                          </div>
                          <div class="carousel-item">
                            <img class="d-block w-100" src="data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%22800%22%20height%3D%22400%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20800%20400%22%20preserveAspectRatio%3D%22none%22%3E%3Cdefs%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E%23holder_164b27b1eb7%20text%20%7B%20fill%3A%23555%3Bfont-weight%3Anormal%3Bfont-family%3AHelvetica%2C%20monospace%3Bfont-size%3A40pt%20%7D%20%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cg%20id%3D%22holder_164b27b1eb7%22%3E%3Crect%20width%3D%22800%22%20height%3D%22400%22%20fill%3D%22%23777%22%3E%3C%2Frect%3E%3Cg%3E%3Ctext%20x%3D%22285.921875%22%20y%3D%22217.7%22%3EFirst%20slide%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E" alt="Third slide">
                          </div>
                          -->
                    </div>
                    <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
                        <span class="PrevIcon" aria-hidden="true"></span>
                        <span class="sr-only">Previous</span>
                    </a>
                    <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
                        <span class="NextIcon" aria-hidden="true"></span>
                        <span class="sr-only">Next</span>
                    </a>
                </div>
                <center>

                    <form id="uploadForm" enctype="multipart/form-data">
                        <div class="input-group">
                            <input type="file" name="image" class="form-control" id="file" />
                            <div class="input-group-prepend">
                                <div class="input-group-text" id="btnGroupAddon">
                                    <input type="button" value="上传" id="submit" />
                                    <input type="hidden" name="productid" id="productid" value="" />
                                </div>
                            </div>

                        </div>

                        <br>

                    </form>

                </center>
            </div>

            <div class="modal-footer">

                <h6 class="info">info</h6>
            </div>
        </div>
    </div>
</div>

3、后台

<?php
namespace app\index\controller;

use think\Controller;
use think\Request;
use think\File;

use app\index\model\ProductModel;
use app\index\model\ExtraProductModel;

class FileUploadController extends Controller
{
    public function index($dir){        
        $id=request()->param('productid');
        $refresh=request()->param('refresh');

        $result;
      
        if($refresh==1){
            $product=ProductModel::where('id', $id)->find();
            $images=$product->images;
            
            $result['status']=1;
            $result['images']=$images;       
        }else{
            $file =request()->file('image');
        // 移动到框架应用根目录/public/uploads/ 目录下
             if($file){
            $info = $file->move(UPLOAD_PATH.$dir);
            if($info){               
                $extraProduct =new ExtraProductModel();
                $extraProduct->name=$info->getFilename();
                $extraProduct->file_path='/upload/'.$dir.'/'.$info->getSaveName();
                $extraProduct->product_id=$id;
                $extraProduct->save();
               
                $product=ProductModel::where('id', $id)->find();
                $images=$product->images;
                
                $result['status']=1;
                $result['images']=$images;                
            }else{
                $result['status']=0;
            }
        }else{
            $result['status']=0;
        }
    }
        return $result;
    }
}

 

Bootstrap 笔记

1、移动端手势滑动事件

$(function () {
        // 获取手指在轮播图元素上的一个滑动方向(左右)

        // 获取界面上轮播图容器
        var $carousels = $('.carousel');
        var startX,endX;
        // 在滑动的一定范围内,才切换图片
        var offset = 50;
        // 注册滑动事件
        $carousels.on('touchstart',function (e) {
            // console.log(e);
            // 手指触摸开始时记录一下手指所在的坐标x
            startX = e.originalEvent.touches[0].clientX;

        });
        $carousels.on('touchmove',function (e) {
            // 目的是:记录手指离开屏幕一瞬间的位置 ,用move事件重复赋值
            endX = e.originalEvent.touches[0].clientX;
        });
        $carousels.on('touchend',function (e) {
            //console.log(endX);
            //结束触摸一瞬间记录手指最后所在坐标x的位置 endX
            //比较endX与startX的大小,并获取每次运动的距离,当距离大于一定值时认为是有方向的变化
            var distance = Math.abs(startX - endX);
            if (distance > offset){
                //说明有方向的变化
                //根据获得的方向 判断是上一张还是下一张出现
                $(this).carousel(startX >endX ? 'next':'prev');
            }
        })
    });

2、去除 ul li 间的间隔

ul{
    list-style-type: none;
    margin:0px;
    padding:0px;
}

 

SVG 笔记

1、活动价标签

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" class="svg-triangle">
     <defs>
         <radialGradient id="grad1" cx="50%" cy="50%" r="90%" fx="70%" fy="70%">
              <stop offset="0%" style="stop-color:rgb(252, 248, 1);stop-opacity:1" />
              <stop offset="100%" style="stop-color:rgb(255, 0, 0);stop-opacity:1" />
         </radialGradient>
     </defs>
     <polygon points="0 0,36 0,0 36" fill="url(#grad1)"/>
     <text x="-2"  y="-5" transform="rotate(-45 36,0)" style="stroke:none; fill:#fff;">活动价</text>
</svg>
.svg-triangle{
        position:absolute;
    margin: -6px auto;
    width: 36px;
    height: 36px;    
    font-size:8px;
}