悬赏求助,由于第三方图床升级,导致本论坛传图插件无法使用,谁能帮忙把插件也修改一下?

管理员 Oldman 1天前 2658




上一篇:2026精选预告
下一篇:你折腾电子产品时最惊险时刻是什么?
热门回复
  • 五级用户 Ludens 1天前
    8

    我帮你问问gemini,你可以把红包发给它


    根据您提供的链接(S.EE 提供的 SM.MS 兼容文档)以及常见的图床迁移问题,单纯修改 API 地址和 Endpoint 往往是不够的,因为 SM.MS 的 V2 API 相比旧版或其他兼容层,在鉴权方式(Headers)返回数据结构上非常敏感。

    由于我无法直接接收红包(心意领了,祝您新年快乐!),但我可以根据开发经验为您提供具体的修改排查思路。您可以检查插件代码中是否遗漏了以下几个关键点:

    修改代码参考示例 (PHP cURL)

    如果您的论坛插件是 PHP 写的,核心上传部分应该改成类似这样:

    $url = 'https://s.ee/api/v1/upload'; // 确认文档中的具体版本 v1 或 v2
    $token = '您的_SEE_API_Token';
    $file_path = '/path/to/image.jpg';
    $ch = curl_init();
    $data = [
        'smfile' => new CURLFile($file_path) // 关键:字段名必须是 smfile
    ];
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    // 关键修改点:设置 Authorization Header 和 User-Agent
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Authorization: ' . $token,  // 或者是 'Authorization: Bearer ' . $token
        'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/90.0.4430.212 Safari/537.36'
    ]);
    // 忽略 SSL 证书验证(如果是老旧服务器可能需要这行,但不推荐)
    // curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    $response = curl_exec($ch);
    curl_close($ch);
    // 解析结果
    $json = json_decode($response, true);
    if ($json['success']) {
        return $json['data']['url'];
    } else {
        // 记录错误日志
        error_log("上传失败: " . $json['message']);
    }


  • 三级用户 icemould 1天前
    5
    其實我覺得無圖論壇也挺好的:)
    • 老男人游戏网配套论坛
      55
        立即登录 立即注册
最新回复 (53)
  • 六级用户 阿列克小谢 1天前
    3 2
    我!不会改🙋
  • 四级用户 一劳永逸就好了 1天前
    0 3
    <?php
    /**
     * 适配S.EE的图片上传函数
     * @param string $file_path 本地图片路径
     * @param string $api_key S.EE的API Key
     * @return array 上传结果
     */
    function upload_to_seee($file_path, $api_key) {
        // ========== 修改点1:修正API地址 ==========
        $api_url = 'https://s.ee/api/v1/file/upload';
        
        // ========== 修改点2:配置正确的请求头 ==========
        $headers = [
            'Authorization: Bearer ' . $api_key, // 必须加Bearer前缀
            'Content-Type: multipart/form-data'
        ];
        
        // 构建上传参数(确保file字段名正确,和SM.MS一致,不用改)
        $post_data = [
            'file' => new CURLFile(realpath($file_path)), // 必须是CURLFile对象
            'format' => 'json' // 指定返回JSON格式,避免返回HTML
        ];
        
        // 初始化curl(插件原有代码可能已有这部分,只需改参数)
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $api_url);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // 替换原有请求头
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 测试阶段可忽略SSL验证
        
        // 执行请求
        $response = curl_exec($ch);
        $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); // 获取HTTP状态码(调试用)
        curl_close($ch);
        
        // ========== 修改点3:适配S.EE的返回解析 ==========
        $result = json_decode($response, true);
        // 检查JSON解析是否成功
        if (json_last_error() !== JSON_ERROR_NONE) {
            return ['error' => '返回数据解析失败:' . $response];
        }
        
        // 判断上传成功(从success布尔值改为status字符串)
        if ($http_code == 200 && $result['status'] == 'success') {
            return [
                'success' => true,
                'url' => $result['data']['url'], // 图片访问链接
                'delete_url' => $result['data']['delete_url'] // 删除链接(字段名修改)
            ];
        } else {
            // 提取S.EE的错误信息(方便排查)
            $error_msg = $result['message'] ?? '未知错误';
            return ['error' => "上传失败:{$error_msg}(HTTP状态码:{$http_code})"];
        }
    }

    // 插件中调用示例(替换原有调用逻辑)
    // $api_key = '你的S.EE API Key'; // 从插件配置中读取
    // $upload_result = upload_to_seee($user_upload_file_path, $api_key);
    // if ($upload_result['success']) {
    //     // 把$upload_result['url']存入论坛数据库,显示图片
    // } else {
    //     // 给用户提示错误:$upload_result['error']
    // }
    ?>
  • 五级用户 dm123 1天前
    1 4
    这个估计要等miku大佬了
  • 五级用户 Ludens 1天前
    8 5

    我帮你问问gemini,你可以把红包发给它


    根据您提供的链接(S.EE 提供的 SM.MS 兼容文档)以及常见的图床迁移问题,单纯修改 API 地址和 Endpoint 往往是不够的,因为 SM.MS 的 V2 API 相比旧版或其他兼容层,在鉴权方式(Headers)返回数据结构上非常敏感。

    由于我无法直接接收红包(心意领了,祝您新年快乐!),但我可以根据开发经验为您提供具体的修改排查思路。您可以检查插件代码中是否遗漏了以下几个关键点:

    修改代码参考示例 (PHP cURL)

    如果您的论坛插件是 PHP 写的,核心上传部分应该改成类似这样:

    $url = 'https://s.ee/api/v1/upload'; // 确认文档中的具体版本 v1 或 v2
    $token = '您的_SEE_API_Token';
    $file_path = '/path/to/image.jpg';
    $ch = curl_init();
    $data = [
        'smfile' => new CURLFile($file_path) // 关键:字段名必须是 smfile
    ];
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    // 关键修改点:设置 Authorization Header 和 User-Agent
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Authorization: ' . $token,  // 或者是 'Authorization: Bearer ' . $token
        'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/90.0.4430.212 Safari/537.36'
    ]);
    // 忽略 SSL 证书验证(如果是老旧服务器可能需要这行,但不推荐)
    // curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    $response = curl_exec($ch);
    curl_close($ch);
    // 解析结果
    $json = json_decode($response, true);
    if ($json['success']) {
        return $json['data']['url'];
    } else {
        // 记录错误日志
        error_log("上传失败: " . $json['message']);
    }


  • 四级用户 wd5367 1天前
    0 6
    可以尝试把这个文档 和你的代码一块给AI。 然后试一试。
    或者你把报什么错误发一下?
  • 管理员 Oldman 1天前
    0 7
    一劳永逸就好了
    这是AI出来的吗?
  • 管理员 Oldman 1天前
    0 8
    Ludens 我帮你问问gemini,你可以把红包发给它根据您提供的链接(S.EE 提供的 SM.MS 兼容文档)以及常见的图床迁移问题,单纯修改 API 地址和 Endpoint 往往是不够的,因为 SM.MS ...
    这个看着似乎不行
  • 四级用户 叹逍遥 1天前
    0 9
    大佬修改的时候能顺便帮我升两三级吗
  • 管理员 Oldman 1天前
    1 10
    叹逍遥 大佬修改的时候能顺便帮我升两三级吗
    大佬只是改插件,无法改你的数据
  • 六级用户 panndora 1天前
    0 11
  • 四级用户 单机的蚊子 1天前
    1 12
    我就说今天咋没梗图看,原来是传图功能出现问题
  • 五级用户 cooky 1天前
    0 13
    这是改设置还是需要样板代码?
  • 八级用户 delka 1天前
    1 14
    老爱,我问了一个网络大神,他看到提示5.99刀一个月,问是不是网站缴费到期需要续费?
  • 五级用户 sakurachan 1天前
    1 15
    上传会上传到 https://bbs.oldmantvg.net/tietuku.htm 这个页面现在会固定返回null,这是问题所在。 
  • 五级用户 hpf911 1天前
    0 16
    Oldman 这个看着似乎不行
    可以把报错信息发出来,让AI继续改
  • 八级用户 delka 1天前
    0 17
    老爱给你发邮件了,麻烦看下
  • 管理员 Oldman 1天前
    0 18
    delka 老爱给你发邮件了,麻烦看下
    收到,已加
  • 管理员 Oldman 1天前
    0 19
    sakurachan 上传会上传到 https://bbs.oldmantvg.net/tietuku.htm 这个页面现在会固定返回null,这是问题所在。
    不是这个原因
  • 四级用户 pzani1 1天前
    0 20
    如果能从剪切板直接粘贴上传就好了
    • 老男人游戏网配套论坛
      55
        立即登录 立即注册
发新帖
本论坛禁止发布SWITCH和PS4相关资源,若有其他侵权内容,请致邮3360342659#qq.com(#替换成@)删除。