您好,
会员登录 快速注册
退出 ( 条未读消息)
关于本站 意见反馈 首页

公告:小宅博客网可以开发票了,需要发票的,去群里找群主哈!!
全部文章分类
  • 人工智能 >

  • 编程语言 >

  • WPF系列 >

  • ASP.NET系列 >

  • Linux >

  • 数据库 >

  • 嵌入式 >

  • WEB技术 >

  • PLC系列 >

  • 微服务与框架 >

  • 小宅DIY >

  • 学习资料 >

OpenCv基础 ANN车牌识别 yolov5车牌识别 指针式仪表识别 ROS系列 YOLO Halcon Detectron2 昇腾AI ChatGPT在线体验 英伟达JETSON ChatGLM ChatTTS FunASR 地平线 ByteTrack 魔搭社区 LangChain
C C# C++ Python Java Go
WPF
ASP.NET小功能 GPS定位系统-MVC GPS定位系统-VUE ASP.NET WebRTC
Linux Linux内核 Shell MakeFile
MySql SqlServer Oracle
STM8 STM32 51单片机
VUE入门 HTML JavaScript CSS layui镜像网站 ElementUi中文官网 element-plus 图标
三菱 欧姆龙 西门子 施耐德 松下 台达
IOTSharp IOTGateway ABP FRAMEWORK Docker
亚克力音响 编程仙途:智驭万法
面试题与技巧 Python入门技能树 微软C#教程
首页 编程之美 工具下载 全国就业 流量地图 文心一言
Linux
1、Linux虚拟机挂载文件夹 windows下如何安装Ubuntu18.10虚拟机 windows下如何安装Ubuntu22.10虚拟机 Ubuntu18.10虚拟机初始化与更新 Ubuntu18.10虚拟机共享粘贴板 Linux下如何安装OpenCv/C++运行环境 kill -l 信号说明 Windows11 WSL 安装Ubuntu VNC 远程桌面安装 使用curl往服务器推送图片
VNC 远程桌面安装
激萌の小宅 小宅博客 Linux

文章作者:激萌の小宅

促销:¥0

价格:¥0

配送方式: 购买后立即生效(如购买异常,请联系站长)
付款之后一定要等待自动跳转结束,否则购买可能会失败
  • 0 天

    有效期

  • 0

    总销量

  • 0

    累计评价

使用curl往服务器推送图片

测试代码:

#include <stdio.h>
#include <stdlib.h>
#include <curl/curl.h>
#include <stdbool.h>

char *upload_url = "http://192.168.10.111:5071/api/device/upload_img";


bool SendImage(char *upload_url, char *send_path) {
    CURL *curl;
    CURLcode res = CURLE_COULDNT_CONNECT;
    struct curl_httppost *form = NULL;
    struct curl_httppost *lastptr = NULL;

    curl = curl_easy_init();
    if (curl) {
        // 打开要上传的文件
        FILE *upload_file = fopen(send_path, "rb");
        if (!upload_file) {
            perror("Error opening file");
            curl_easy_cleanup(curl);
            return false;
        }

        // 设置POST请求和文件上传参数
        curl_easy_setopt(curl, CURLOPT_URL, upload_url);
        curl_formadd(&form, &lastptr,
                     CURLFORM_COPYNAME, "file",    // 字段名与C#接口参数名一致
                     CURLFORM_FILE, send_path,      // 文件路径
                     CURLFORM_CONTENTTYPE, "image/jpeg", // 明确指定文件类型
                     CURLFORM_END);
        
        curl_easy_setopt(curl, CURLOPT_HTTPPOST, form);

        // 关键修改:设置Content-Type为multipart/form-data
        struct curl_slist *headers = NULL;
        headers = curl_slist_append(headers, "Content-Type: multipart/form-data");
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);

        // 设置超时时间
        curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 60L);

        // 执行请求
        res = curl_easy_perform(curl);

        // 清理资源
        curl_formfree(form);
        fclose(upload_file);
        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }

    if (res != CURLE_OK) {
        fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
        return false;
    }
    return true;
}

int main() {
    if (SendImage(upload_url, "stream_chn1_0.jpg")) {
        printf("File uploaded successfully.\n");
    } else {
        printf("File upload failed.\n");
    }
    return 0;
}


编译

gcc main.c -o a -lcurl


VNC 远程桌面安装

友情链接: CSDN激萌の小宅 95知识库 自考题库 罗分明个人网络博客 精益编程leanboot

小宅博客  www.bilibili996.com All Rights Reserved. 备案号: 闽ICP备2024034575号

网站经营许可证  福建省福州市 Copyright©2021-2025 版权所有

小宅博客
首页 智能家居 地图定位
公告:小宅博客网可以开发票了,需要发票的,去群里找群主哈!!

文章作者:激萌の小宅

促销:¥0

价格:¥0

配送方式: 购买后立即生效(如购买异常,请联系站长)
付款之后一定要等待自动跳转结束,否则购买可能会失败
  • 0 天

    有效期

  • 0

    总销量

  • 0

    累计评价

使用curl往服务器推送图片

测试代码:

#include <stdio.h>
#include <stdlib.h>
#include <curl/curl.h>
#include <stdbool.h>

char *upload_url = "http://192.168.10.111:5071/api/device/upload_img";


bool SendImage(char *upload_url, char *send_path) {
    CURL *curl;
    CURLcode res = CURLE_COULDNT_CONNECT;
    struct curl_httppost *form = NULL;
    struct curl_httppost *lastptr = NULL;

    curl = curl_easy_init();
    if (curl) {
        // 打开要上传的文件
        FILE *upload_file = fopen(send_path, "rb");
        if (!upload_file) {
            perror("Error opening file");
            curl_easy_cleanup(curl);
            return false;
        }

        // 设置POST请求和文件上传参数
        curl_easy_setopt(curl, CURLOPT_URL, upload_url);
        curl_formadd(&form, &lastptr,
                     CURLFORM_COPYNAME, "file",    // 字段名与C#接口参数名一致
                     CURLFORM_FILE, send_path,      // 文件路径
                     CURLFORM_CONTENTTYPE, "image/jpeg", // 明确指定文件类型
                     CURLFORM_END);
        
        curl_easy_setopt(curl, CURLOPT_HTTPPOST, form);

        // 关键修改:设置Content-Type为multipart/form-data
        struct curl_slist *headers = NULL;
        headers = curl_slist_append(headers, "Content-Type: multipart/form-data");
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);

        // 设置超时时间
        curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 60L);

        // 执行请求
        res = curl_easy_perform(curl);

        // 清理资源
        curl_formfree(form);
        fclose(upload_file);
        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }

    if (res != CURLE_OK) {
        fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
        return false;
    }
    return true;
}

int main() {
    if (SendImage(upload_url, "stream_chn1_0.jpg")) {
        printf("File uploaded successfully.\n");
    } else {
        printf("File upload failed.\n");
    }
    return 0;
}


编译

gcc main.c -o a -lcurl