首页 > 编程语言 >C# winform图片上传事例

C# winform图片上传事例

时间:2024-12-27 17:36:02浏览次数:4  
标签:C# request System openFileDialog using 图片 上传 winform

在C# WinForms应用程序中上传图片,你可以使用OpenFileDialog来让用户选择图片文件,然后使用WebRequestHttpClient来发送图片到服务器。以下是一个简单的例子:

  1. 添加一个按钮到你的WinForms窗体上,用来触发上传操作。

  2. 实现按钮的点击事件处理程序来打开文件选择器,选择图片,并上传。

     

    using System;
    using System.Drawing;
    using System.IO;
    using System.Net;
    using System.Windows.Forms;

    public partial class MainForm : Form
    {
    public MainForm()
    {
    InitializeComponent();
    }

    private void uploadButton_Click(object sender, EventArgs e)
    {
    using (OpenFileDialog openFileDialog = new OpenFileDialog())
    {
    openFileDialog.InitialDirectory = "c:\\";
    openFileDialog.Filter = "图片文件(*.jpg;*.jpeg;*.gif;*.bmp;*.png)|*.jpg;*.jpeg;*.gif;*.bmp;*.png";
    openFileDialog.FilterIndex = 1;
    openFileDialog.RestoreDirectory = true;

    if (openFileDialog.ShowDialog() == DialogResult.OK)
    {
    // 获取选中的文件路径
    string filePath = openFileDialog.FileName;

    try
    {
    // 将图片转换为字节数组
    Image image = Image.FromFile(filePath);
    using (MemoryStream ms = new MemoryStream())
    {
    image.Save(ms, image.RawFormat);
    byte[] imageBytes = ms.ToArray();

    // 使用WebRequest上传图片
    // 这里需要替换为你的服务器URL
    string url = "http://yourserver.com/upload";
    WebRequest request = WebRequest.Create(url);
    request.Method = "POST";
    request.ContentType = "application/octet-stream";
    request.ContentLength = imageBytes.Length;

    using (Stream requestStream = request.GetRequestStream())
    {
    requestStream.Write(imageBytes, 0, imageBytes.Length);
    }

    using (WebResponse response = request.GetResponse())
    {
    // 处理服务器响应
    }
    }
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    }
    }
    }
    }

     

     

标签:C#,request,System,openFileDialog,using,图片,上传,winform
From: https://www.cnblogs.com/jinglu/p/18636315

相关文章

  • StarRocks元数据无法合并
    一、先说结论如果您的StarRocks版本在3.1.4及以下,并且使用了metadata_journal_skip_bad_journal_ids来跳过某个异常的journal,结果之后就出现了FE的元数据无法进行Checkpoint的现象,那么选择升级版本到3.1.4以上,就可以解决。二、背景已经平稳运行了几个月的StarRocks集群突然奔溃......
  • uni-app electron打包成exe应用
    1.安装electroncnpminstallelectron-g2.安装electron-packagercnpminstallelectron-packager-g3.uni-app的manifest.json修改 运行的基础路径修改为:./不然打包出来会出现白屏,读取不到,因为打包出来的h5默认加载地址为/static/去掉启用https协议:不然会出现网络无法加载,......
  • Kafka Broker、Producer、Consumer配置参数
    参数的设置对Kafka性能有着至关重要的影响。以下是一些关键参数及其对性能的具体影响:KafkaBroker配置参数num.network.threads:控制Kafka网络线程的数量,这些线程负责处理网络I/O操作。增加此参数的值可以提高网络I/O处理能力,但也会增加内存消耗。num.io.threads:控制KafkaI/O......
  • HTTP Error 503. The service is unavailable.
    HTTPError503.Theserviceisunavailable.Win10安装好IIS后始终访问不了站点,提示已上503问题,而且iis管理界面卡死。于是各种折腾重装重启,半天过去了还是无济于事。百度了很久才找到一篇解决方案,这里总结了一下,希望能帮到你们:原因:访问页面时,应用程序池就自动关闭了。方案:在......
  • CSS实现一个自定义的滚动条
    要使用CSS创建一个自定义的滚动条,你可以使用伪元素和CSS的伪类来控制滚动条的外观和行为。以下是一个简单的例子,展示如何为任何HTML元素添加一个自定义的滚动条样式:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=de......
  • CSS实现无限滚动的列表
    CSS本身不能实现无限滚动的列表,无限滚动通常需要结合HTML、CSS和JavaScript来完成。以下是一个简单的实现无限滚动的列表的示例,它使用了JavaScript来动态加载和展示内容。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="w......
  • 有序之美:C++ Set的哲学与诗意
    文章目录前言一.C++set的概念1.1set的定义1.2set的特点二.set的构造方法2.1常见构造函数2.1.1示例:不同构造方法2.2相关文档三.set的常用操作3.1插入操作详解3.1.1使用insert()插入元素3.1.2使用emplace()插入元素3.1.3插入区间元素3.2查找操作详......
  • 使用UnstructuredRSTLoader加载RST文件的实战指南
    在大数据时代,爬取和收集网络数据是AI应用中的重要一环。而今天要跟大家分享的是一个非常强大的工具——Spider,它以其快速和高性价比著称,非常适合用于获取适合大型语言模型(LLM)的数据。技术背景介绍Spider是一款专门为AI代理和大型语言模型设计的网络爬虫工具。它最大的特......
  • Oracle考试多少分算通过?
    OCP和OCM认证的考试及格分数并不是固定的,而是根据考试的难度和考生的整体表现来确定。对于OCP认证,考生需要全面掌握考试要求的知识和技能,并在考试中表现出色才有可能通过。而对于OCM认证,考生则需要在每个模块中都达到一定的水平才能通过考试。无论是OCP还是OCM认证,都需要考生......
  • 攻防世界 fileinclude
    开启场景右键查看页面源代码然后再进行代码审计:cookie的名称为language,而且需要满足第二个判定条件(PHP:php://-Manual)cookie的名字为language,值为php://filter/read=convert.base64-encode/resource=/var/www/html/flagphp://是PHP伪协议用于访问输入/输出流,php......