MENU

葫芦侠图床上传源码案例分享

• September 22, 2019 • Read: 4510 • 代码分享,经验分享,原创作品阅读设置

前言:

看到群友说有人拿葫芦侠做图床,于是我就去葫芦侠看了下,就一个个人主页上传背景图那个地方可以上传,那就直接开始抓包吧,关键词up,我们就直接可以看到那个请求:
葫芦侠图床上传源码案例分享
直接上代码来写吧!

代码:

<?php
header('Access-Control-Allow-Origin:*');
header('Content-type:application/json; charset=utf-8');
error_reporting(0);
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
        || ($_FILES["file"]["type"] == "image/jpeg")
        || ($_FILES["file"]["type"] == "image/jpg")
        || ($_FILES["file"]["type"] == "image/pjpeg")
        || ($_FILES["file"]["type"] == "image/x-png")
        || ($_FILES["file"]["type"] == "image/png"))
    && ($_FILES["file"]["size"] < 10*1024*1024)
    && in_array($extension, $allowedExts)) {
    if ($_FILES["file"]["error"] > 0) {
        error("文件错误");
    } else {
        $ImageCachePath='images/hulu/';
        if (!is_dir($ImageCachePath)){
            $res = mkdir($ImageCachePath, 0777, true);
        }
        move_uploaded_file($_FILES["file"]["tmp_name"], $ImageCachePath . $_FILES["file"]["name"]);
        $files = $ImageCachePath . $_FILES["file"]["name"];
        $data = json_decode(upload($files)) ;
        unlink($files);
        if ($data->status!==1){
            error("上传错误");
        }else{
            exit(json_encode([
                "code"=>1,
                "msg"=>"上传成功!",
                "imgurl"=>str_replace("http","https",$data->url),
                "fid"=>$data->fid,
                "size"=>$data->size,
            ],JSON_UNESCAPED_UNICODE));
        }
    }
}else {
    error("非法的文件格式");
}
function upload($file){
    $post = array(
        'file'=>new \CURLFile(realpath($file))
    );
    $ch = curl_init("http://upload.huluxia.com/upload/image/avatar?platform=2&gkey=000000&app_version=4.0.1.3.1&versioncode=275&market_id=tool_web&_key=这里的key自己去抓");
    curl_setopt_array($ch, array(
        CURLOPT_POST => true,
        CURLOPT_VERBOSE => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER => array(),
        CURLOPT_POSTFIELDS => $post,
    ));
    $output = curl_exec($ch);
    curl_close($ch);
    return $output;
}
function error($str){
    exit(json_encode([
        "code"=>-1,
        "msg"=>$str
    ],JSON_UNESCAPED_UNICODE));
}

葫芦侠图床案例分享
这是封装好的上传返回信息,其中的u1 还可以换成u2 都可以用,其次就是我上传了一张3MB大小的图,也没有压缩的情况,就是不知道时间性怎么样,感兴趣的可以自己测试吧!

我这边封装好的接口:https://api.oioweb.cn/api/huluxia.php 文件流请求 默认参数file

Archives QR Code Tip
QR Code for this page
Tipping QR Code
Leave a Comment

8 Comments
  1. 我记得未来在你这个之前写过

  2. cc cc

    https://tucao.qq.com/dashboard/new-product
    腾讯新出的吐个槽,反馈那里可以上传图片,可以做图床

    1. @ccOK

    2. @cc反馈的一般会压缩图片 还是临时存储的

  3. https://upload.huluxia.net/upload/image/larger

    参数是默认的 file 不需要cookie 直接使用

  4. cookie 时间比较短 建议模拟登录保存cookie一下

  5. 先生你好,我是浅笑。我想问问你用的什么抓包软件(就你上面截图的那个手机抓包软件),能不能发给我

    1. @浅笑https://www.52pojie.cn/thread-946430-1-1.html