搭建三合一图床-百度、搜狗、阿里

前边文章说了如何搭建百度、搜狗、阿里图床接口,那自然也少不了一个配套的上传源码💖

Table of Contents

教程

直接上源码,HTML文件,怎么用我觉得没必要说了,大家都懂

<!DOCTYPE html>
<html lang='zh-cn'>
<head>
    <meta charset='UTF-8'>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
    <title>KAI白嫖图床</title>

    <link rel='stylesheet' href='https://cdn.bootcss.com/normalize/5.0.0/normalize.min.css'>
    <script src="https://cdn.bootcss.com/jquery/3.3.0/jquery.min.js"></script>
    <meta name="referrer" content="same-origin">
    <style>
    html,body {height: 100%;margin: 0;padding: 0;}body {font-family: 'lucida grande', 'lucida sans unicode', lucida, helvetica, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', sans-serif;align-items: center;display: flex;}a{text-decoration:none;}#container {max-width: 400px;flex-basis: 100%;margin: 0 auto;background: #FFF;border-radius: 10px;box-shadow: 0 0 30px rgba(0, 0, 0, 0.3);-webkit-box-shadow: 0 0 30px rgba(0, 0, 0, 0.3);overflow: hidden;}#container #hero-img {width: 100%;height: 200px;background: #00fff7;}#container #profile-img {width: 160px;height: 160px;margin: -80px auto 0 auto;}#container #profile-img img {width: 100%;background: #FFF;border-radius: 50%;}#container #content {text-align: center;width: 320px;margin: 0 auto;padding: 0 0 50px 0;}#container #content h1 {font-size: 29px;font-weight: 500;margin: 30px 0 0 0;}#container #content p {font-size: 18px;font-weight: 400;line-height: 1.4;color: #666;margin: 15px 0 40px 0;}#container #content a {color: #CCC;font-size: 14px;margin: 0 10px;transition: color .3s ease-in-out;-webkit-transition: color .3s ease-in-out;line-height: 40px;}#container #content a:hover {color: #00fff7;}.btn{background: none repeat scroll 0 0 #36E034; border: 0 none; border-radius: 2px; color: #FFFFFF !important; cursor: pointer; font-family: "Open Sans","Hiragino Sans GB","Microsoft YaHei","WenQuanYi Micro Hei",Arial,Verdana,Tahoma,sans-serif; font-size: 14px;  padding: 6px 10%;}.btn:hover,.yanshibtn:hover{background: none repeat scroll 0 0 #1BA1E2; border: 0 none; border-radius: 2px; color: #FFFFFF!important; cursor: pointer; font-family: "Open Sans","Hiragino Sans GB","Microsoft YaHei","WenQuanYi Micro Hei",Arial,Verdana,Tahoma,sans-serif; font-size: 14px; padding: 8px 10%;}
    .imgType{display: none;}
    #images img{width: 100%}
    #imgurl input{width: 100%}
    #imgurl,#progress{display: none;}

    @-webkit-keyframes rotation{
        from {-webkit-transform: rotate(0deg);}
        to {-webkit-transform: rotate(360deg);}
    }

    .Rotation{
        -webkit-transform: rotate(360deg);
        animation: rotation 3s linear infinite;
        -moz-animation: rotation 3s linear infinite;
        -webkit-animation: rotation 3s linear infinite;
        -o-animation: rotation 3s linear infinite;
    }

    .img{border-radius: 250px;}
    footer{position:absolute;bottom:0;width:30%;height:30px;background-color: #85ff8f;}
</style>
</head>
<body>
    <div id='container'>
        <div id='content'>
            <h2>白嫖图床</h2>
            <h3>
                上传完成点击链接即可复制
            </h3>
            <h5>
                图片存在防盗链,直接复制生成的html代码使用默认解决了防盗链问题,其他形式如果不会解决请直接在网页head中加入 <meta name="referrer" content="same-origin">
            </h5>
            <h4>注意百度图床会转码并裁剪图片!!</h4>
            <h4>阿里和搜狗速度快、通常文件不压缩、稳定易用,,区别在阿里图床没有防盗链</h4>
            <h4>搜狗图床图片有效期只有一天多,只能临时使用!</h4>
            <h4>禁止上传违法内容,永久保留日志,发生问题将会交给有关部门!!</h4>
            <div id="progress"><progress max="100" value="0" id="pg"></progress></div>
            <p class="imgType" id="imgType"></p>
            <form id="form1">
                <a href='javascript:void(0)' id="baiduImg" onclick="update('baidu')" class="btn btn-default" rel='nofollow'>百度图床</a><a href='javascript:void(0)' id="sougouImg" onclick="update('sougou')" class="btn btn-default" rel='nofollow'>搜狗图床-临时</a><a href='javascript:void(0)' id="aliImg" onclick="update('ali')" class="btn btn-default" rel='nofollow'>阿里图床-好用</a>
                <input type="file" id="file" name="file" onchange="sc($('#imgType').attr('imgType'));" style="display:none" accept="image/*">
            </form>
            <div class="imgContent" id="imgContent">
                <div id="images"></div>
                <div id="imgurl">
                    <code>ImgUrl:(点击链接自动复制)</code>
                    <input onclick="oCopy(this)" value=""  id="Imgs_url">
                    <code>HtmlUrl:(点击链接自动复制)</code>
                    <input onclick="oCopy(this)" value=""  id="Imgs_html">
                    <code>Ubb:(点击链接自动复制)</code>
                    <input onclick="oCopy(this)" value=""  id="Imgs_Ubb">
                    <code>Markdown:(点击链接自动复制)</code>
                    <input onclick="oCopy(this)" value=""  id="Imgs_markdown">
                </div>
            </div>

        </div>
    </div>
        <footer>
    </footer>
</body>

<script type="text/javascript">

 function update(type){
    $('#file').val('');
    $('#imgType').attr({
        imgType: type,
    });
    file.click();

 }

 function sc(type){
    if(!type){return false;}
    var animateimg = $("#file").val();
    $('#pg').val('0');
    var imgarr=animateimg.split('\\');
    var myimg=imgarr[imgarr.length-1];
    var houzui = myimg.lastIndexOf('.');
    var ext = myimg.substring(houzui, myimg.length).toUpperCase();  
    var file = $('#file').get(0).files[0];
    if(!file){return false;}
    var fileSize = file.size;

    switch(type){

        case 'baidu':
        var maxSize = 7340032;
        break;
        case 'sougou':
        var maxSize = 10485760;
        break;
        case 'ali':
        var maxSize = 4194304;
        break;

    } 
    if(ext !='.PNG' && ext !='.GIF' && ext !='.JPG' && ext !='.JPEG' && ext !='.BMP'){  
        parent.alert('文件类型错误,请上传图片类型');return false;  
    }else if(parseInt(fileSize) >= parseInt(maxSize)){  
        parent.alert('上传的文件不能超过'+maxSize/1024/1024+'MB');return false;  
    }else{
        $('#imgLoading').attr('src','https://ww2.sinaimg.cn/large/005BYqpgly1fxbbemsqxaj305k05k3yg.jpg');
        var data = new FormData($('#form1')[0]);  

        switch(type){
            case 'sougou':
            var apiUrl = '地址填在这';  //搜狗图片上传接口
            break;
            case 'baidu':
            var apiUrl = '地址填在这';   //百度图片上传接口
            break;
            case 'ali':
            var apiUrl = '地址填在这';     //阿里图片上传接口
            break;
            default:
            return false;
        };
        $('#progress').show();
        $.ajax({
            url: apiUrl,   
            type: 'POST',    
            data: data,    
            dataType: 'JSON', 
            processData: false,    
            contentType: false,
            xhr: function(){
                var xhr = $.ajaxSettings.xhr();
                if(onprogress && xhr.upload) {
                    xhr.upload.addEventListener("progress" , onprogress, false);
                    return xhr;
                }
            }
        }).done(function(ret){
            if(ret['code']=='1'){

                var img = '';var imgurl = '';
                var img666 = ret['imgurl'];

                img = '<img src="'+img666+'" referrerPolicy="no-referrer" name="sinaimg" id="sinaimg">';
                $('#Imgs_url').val(img666);
                $('#Imgs_html').val('<img src="'+img666+'" referrerPolicy="no-referrer">');
                $('#Imgs_Ubb').val('[img]'+img666+'[/img]');
                $('#Imgs_markdown').val('![]('+img666+')');
                $('#images').html(img);
                $('#imgurl').show();
                $('#progress').hide();  
            }else{
                $('#progress').hide();
                parent.alert(ret['msg']);
            }  

        });
        return false;  
    }    
 }

 function onprogress(evt){
    var loaded = evt.loaded;
    var tot = evt.total;
    var per = Math.floor(100*loaded/tot);
    $('#pg').val(per);

 }
 function oCopy(obj){
    obj.select();
    document.execCommand("Copy");
    if (browserRedirect()) {alert('您使用的可能是手机,有一定几率复制失败!请查看剪切板是否成功复制');}
 }

 function browserRedirect(){
    var sUserAgent = navigator.userAgent.toLowerCase();
    var bIsIpad = sUserAgent.match(/ipad/i) == 'ipad';
    var bIsIphone = sUserAgent.match(/iphone os/i) == 'iphone os';
    var bIsMidp = sUserAgent.match(/midp/i) == 'midp';
    var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == 'rv:1.2.3.4';
    var bIsUc = sUserAgent.match(/ucweb/i) == 'web';
    var bIsCE = sUserAgent.match(/windows ce/i) == 'windows ce';
    var bIsWM = sUserAgent.match(/windows mobile/i) == 'windows mobile';
    var bIsAndroid = sUserAgent.match(/android/i) == 'android';
    if(bIsIpad || bIsIphone || bIsMidp || bIsUc7 || bIsUc || bIsCE || bIsWM || bIsAndroid ){
        return 1;
    }
 };
 $(document).ready(function(){
    $('#imgLoading').click(function() {$("#imgContent").toggle();});
 });
</script>
</html>

发现的问题

  1. 搜狗图传接口用非同域接口时,接口会报500,,,,暂时还不知道为什么
  2. 接口地址跨域即使文件名为index也要填写完整的php地址,像这样https://x.x/x/index.php ,同域写到./x/就可以,我看了一下在用后者的时候Nginx没有返回Access-Control-Allow-Origin: *的响应标头,不知是为什么🤷‍♂️

原创文章,作者:kai233,如若转载,请注明出处:https://www.sorkai.com/archives/83

(0)
上一篇 2020年5月12日 下午3:13
下一篇 2020年5月17日 上午10:31

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注