winform实现为web项目上传图片的功能

c# wiform程序通过webservice上传图片到服务器 选择图片,预览图片,确认上传,在列表显示已上传图片并预览,并存入数据库 webservice: private void btnPicture_Click(object sender, EventArgs e) { fileDialog = new OpenFileDialog(); if (fileDialog.Show 阅读详情

项目中有个需求:用winform维护web服务器端的数据,其中需要添加图片,且图片上传需要考虑手机端,要将图片压缩后存在另个文件夹下由手机端调用,以此减轻手机端的数据量过大的负担。

实现思路如下:1.用webservice作为winform的数据层对web服务器数据进行维护;2.webservice中添加如下代码由winform调用:

#region---上传图片---
        /// <summary>
        ///
        /// </summary>
        /// <param name="content"></param>
        /// <param name="pathandname"></param>
        /// <returns></returns>
        [WebMethod]
        public int UpLoadFile(byte[] content, string pathandname)
        {
            int result = -2;//-2,未知错误,-1上传失败,1web图片上传成功但手机图片未成功上传,2web和手机图片都上传成功。
            try
            {
                string phonePicturePath = ConfigurationManager.AppSettings["phonePicturePath"];
                int percentage = Convert.ToInt32(ConfigurationManager.AppSettings["percentage"]);
                int index = pathandname.LastIndexOf(".");
                if (index == 0)
                {
                    result = -1;
                }
                else
                {
                    string extended = string.Empty;
                    if (index + 1 == pathandname.Length)
                    {
                        result = -1;
                    }
                    else
                    {
                        extended = pathandname.Substring(index + 1);
                        if (extended == "jpeg" || extended == "gif" || extended == "jpg" || extended == "png")
                        {
                            try
                            {
                                File.WriteAllBytes(Server.MapPath(pathandname), content);//web上传成功
                                result = 1;
                                phonePicturePath += pathandname.Substring(pathandname.LastIndexOf('/'));
                                if (GetPicThumbnail(pathandname, phonePicturePath, percentage))//全部上传成功
                                {
                                    result = 2;
                                }
                            }
                            catch (Exception ex)
                            {
                                result = -1;
                            }

                        }
                        else
                        {
                            result = -1;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                result = -1;
            }
            return result;
        }

        /// <summary>
        /// 压缩图片
        /// </summary>
        /// <param name="sFile">文件路径</param>
        /// <param name="outPath">存放路径</param>
        /// <param name="flag">压缩比率</param>
        /// <returns>Boolean</returns>
        [WebMethod]
        public bool GetPicThumbnail(string sFile, string outPath, int flag)
        {
            System.Drawing.Image iSource = System.Drawing.Image.FromFile(Server.MapPath(sFile));
            ImageFormat tFormat = iSource.RawFormat;

            //以下代码为保存图片时,设置压缩质量
            EncoderParameters ep = new EncoderParameters();
            long[] qy = new long[1];
            qy[0] = flag;//设置压缩的比例1-100
            EncoderParameter eParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, qy);
            ep.Param[0] = eParam;
            try
            {
                ImageCodecInfo[] arrayICI = ImageCodecInfo.GetImageEncoders();
                ImageCodecInfo jpegICIinfo = null;
                for (int x = 0; x < arrayICI.Length; x++)
                {
                    if (arrayICI[x].FormatDescription.Equals("JPEG"))
                    {
                        jpegICIinfo = arrayICI[x];
                        break;
                    }
                }
                if (jpegICIinfo != null)
                {
                    iSource.Save(Server.MapPath(outPath), jpegICIinfo, ep);//dFile是压缩后的新路径
                }
                else
                {
                    iSource.Save(outPath, tFormat);
                }
                return true;
            }
            catch
            {
                return false;
            }
            finally
            {
                iSource.Dispose();
                iSource.Dispose();
            }
        }
        #endregion


3.然后winform端代码如下:

private void btnCommonFile_Click(object sender, EventArgs e)
        {
            OpenFileDialog fileDialog = new OpenFileDialog();
            if (fileDialog.ShowDialog() == DialogResult.OK)
            {
                string extension = Path.GetExtension(fileDialog.FileName);
                string[] str = new string[] { ".gif", ".jpeg", ".jpg", "png" };
                if (!str.Contains(extension))
                {
                    MessageBox.Show("仅能上传gif,jpeg,jpg,png格式的图片!");
                }
                else
                {
                    FileInfo fileInfo = new FileInfo(fileDialog.FileName);
                    if (fileInfo.Length > (FILE_SIZE * 1024) * 1024)
                    {
                        MessageBox.Show("上传的图片不能大于5MB");
                    }
                    else
                    {
                        Stream file = fileDialog.OpenFile();
                        byte[] bytes = new byte[file.Length];
                        file.Read(bytes, 0, bytes.Length);
                        DateTime time = DateTime.Now;
                        //重命名图片的名称与路径
                        string path_name = "/images/" + time.ToString("yyyyMMddHHmmss") + extension;
                        if (tb.UploadFile(bytes, path_name, extension) != "-1")
                        {
                            MessageBox.Show("上传功能!");
                            this.txtpicture.Text = path_name;
                        }
                    }
                }
            }
        }

4.至此全部工作做完。


在WEB API项目中使用KindEditor富文本编辑器 阅读详情

相关推荐

C# WinForm实现WebService接口进行图片上传下载

本文还有配套的精品资源,点击获取 简介:本文深入介绍了在C# WinForm应用程序中使用WebService接口连接服务器,实现图片的上传和下载功能。通过理解WebService基础,利用WinForm工具创建用户界面,并实现客户端与WebService的连接,我们详细探讨了图片上传与下载的具体步骤,包括文件选择、数据转换、接口调用,以及异常处理和进度显示。同时,还强调了...

weixin_30356433的博客 2467

winform客户端上传图片或文件到web服务器

System.Net.WebClient myWebClient = new System.Net.WebClient();//声明变量 //rweb路径 = "http://localhost:1473/servfilechuli.ashx"网络路径 //rweb路径 = "http://localhost:1473/servfilechuli.ashx?xxx=xxx&zzz=zzz..."网络路径带参 myWebClient.UploadFile("web路径可以带参数", "POST".

qq_28240219的博客 1197

C# winform上传照片到服务器

能够上传照片到网络共享的指定文件夹,并且能够按照要求修改照片的名字

.Net 如何在web中实现将HTML转换成一张图片(非常简单)

本文包含附本:  379_811_HtmlToPic.rar 目前发现的方法,都是通过:创建一个winform程序,然后在web层调用这个程序从而生成图片。副本是我写的一个通过传入网址,从而实现将HTML转成一张图片的winform程序。调用起来非常简单。调用方法:(将HtmlToPic.exe copy 到你要调用的目录下)在web层加入以下方法:将会

2865

winForm上传文件到服务器

winForm上传文件到服务器 ,利用web页面保存。

深入理解EtherCAT状态机:从IGH代码看伺服电机如何从‘上电’到‘使能’

本文深入解析EtherCAT状态机的工作原理,重点探讨伺服电机从'上电'到'使能'的状态转换过程。通过分析状态字(Status Word)和控制字(Control Word)的交互机制,结合IGH代码实例,揭示DS402状态机的核心逻辑,帮助工程师解决60%以上的伺服控制问题,提升EtherCAT网络调试效率。

weixin_42549037的博客 289

Winfrom使用dotnetCHARTING动态生成图片

dotnetCHARTING分为WebForm和WinForm,网上有很多这方面的博客,我就把自己在项目中使用这个dotnetCharting.WinForms.dll如何生成图片,并把图片保存在指定路径的硬盘上,整理写成博客,方便以后自己能够快速找到这个项目 第一步:导入dotnetCharting.WinForms.dll 下载地址:http://download.youkuaiyun.com

lvfk 1588

Oracle-OGG trail 文件大小引起的进程异常 OGG-01172

监控OGG目标端进程,其中一个进程异常,状态为 ABENDED,start repa 执行失败。进入OGG报告目录检查运行报告 2015-04-20 09:38:36 ERROR OGG-01172 Discard file (/ogg/oggrm/11.2/dirdat/repa.dsc) exceeded max bytes (2000000000). 总结处理方法,从根本上解决问题。

xdyzgjy的专栏 7957

winForm base64编码转换 上传文件到web服务器

  上一篇文件简单剖析了文件上传php的处理制度,它是建立在客户端浏览器的 file控件,其实客户端浏览器的file控件对文件是做了流读取的,把文件读取到浏览器然后通过http的 请求头的request payLoad 来向服务端请求。那么我们能不能不用file控件,我直接把流读成其他字符格式来向服务器端请求POST发送呢。奔着这个思路,用winFrom->http 服务器形式来模拟实现(...

weixin_34236869的博客 197

【生物识别模组介绍】静脉识别模组

静脉识别技术是依据流动的静脉血液中的血红蛋白对近红外光有所吸收,通过近红外光照射手指、手掌、面部、腕部呈现的分布图像,再使用特定的算法对图像进行特征提取、分析比对,从而进行身份认证识别。静脉结构相同几率为34亿分之一,每个人的静脉结构具有独特性,而且静脉特征图像自成年后终身不变,不受外部环境、疾病等影响,是人体最稳定的生物特征之一。商务合作联系:newmagicmission@gmail.com图1.0。

upupDay's blog 902

YOLOv8首发优化:遥感目标检测 | 专为低质量遥感图像设计的边缘 - 高斯聚合(EGA)模块,解决低空间分辨率、传感器噪声、目标模糊、低光照退化和部分遮挡等限制

一种轻量级网络,其创新性地整合了专为低质量遥感图像设计的边缘 - 高斯聚合(EGA)模块。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 493

C# winform截图、web Cropper图片剪切、上传

今天又来一弹,写了个小功能,windows桌面截图,web剪切图片上传的功能。 废话不多说,直接上图: 1、winform截屏功能 图1主窗体 点击全屏截图,就已经全屏截图了,截图后,图片保存在程序根目录,同时,图片也在剪切板上了,可以直接黏贴到qq或其工具上,比如:我们播客的富文本编辑器 图2区域截图 区域截图点击后,窗体半透明,鼠标变成 ...

a617508321的博客 511

踩遍Windows所有坑:Codex CLI桌面端+命令行双环境安装避坑实战

Windows下装Codex CLI的坑,本质上都是Windows本身的路径、环境变量、权限、编码这些历史遗留问题,和工具本身关系不大。只要避开中文路径、正确配置PATH、注意终端环境差异,其实安装非常简单。这套双环境方案配好之后,桌面端适合可视化调试、多会话管理,终端适合嵌入编辑器、脚本调用,一套配置两边通用,体验还是很流畅的。按照上面的流程走,基本不会出大问题,就算出问题也能在排查表里找到对应解法。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 300

winform 图片上传到服务器文件夹,winform上传图片到服务器

winform上传图片到服务器 内容精选换一换体验馆提供了各场景下的无服务器构造方案,指导您端到端地构建一个无服务器案例。对于每个案例都介绍了如下内容,包含的案例如表1所示。动态展示案例架构图。动态展示案例的实际效果。使用动图分步骤演示构建过程。图片组件作为一个基本组件,用于展示图片。用户可以通过属性“图片地址”,来选择图片。winform上传图片到服务器 相关内容本手册基于函数工作流服务实践所编...

weixin_33421065的博客 1206

SpringCloud详细教程(下)

SpringCloud详细教程,springcloud完全教程。Springcloud微服务教程(上)的姊妹篇:介绍了其它SpringCloud组件。

鸟哥哥的专栏 4万+

【100%通过率】华为OD机试真题 C++ 实现【水库蓄水问题】【2022.11 Q4 新题】

给定一个长度为 n 的整数数组height。数组的元素表示山的高度,选择两个元素作为水库的边界,求蓄水量的最大值并输出蓄水量最大时的边界下标(蓄水量相同时输出下标较近的)。

MISAYAONE的博客 1万+

winform图片上传到java服务器_winform如何上传图片到服务器

如果想要利用C#通过Socket进行网络传输文件,一般情况下,大家会首先考虑使用.NET自带的Socket.SendFile Method(String)这个方法。不过这个方法没有相应的文件接受方法,而且据说会有8KB的限制。所以,我尝试了另外一种方法,发现效果不错。下面,我就来简单介绍一下其原理。Socket.Send()和Socket.Receive()方法都是传递byte[]的,所以就要想办...

weixin_34556619的博客 500

RT-Thread Studio 使用笔记(七)| 配合STM32CubeMX添加裸机驱动(以ADC为例)

1. 配置STM32CubeMX 2. 复制stm32xxxx_hal_msp.c文件 将 CubeMx 生成的代码 stm32f7xx_hal_msp.c 函数复制到 RT-Thread Studio 生成的工程中,并参与工程编译: 由于我们并没有使用 CubeMx 生成的工程,所以这里需要将 stm32f7xx_hal_msp.c 文件中 #include “main.h” 替换为 #i...

Mculover666的博客(嵌入式) 9627

c winform 上传文件到服务器,winform图片上传web服务器

asp.net winform上传图片到服务器using using using using using using using usingSystem; System.Drawing; System.Collections; http://doc.xuehai.netponentModel; System.Windows.Forms; http://doc.xuehai.net; System...

weixin_32459883的博客 363

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Winform+.Net6实现图片拖拽上传

前言如题,跟你使用过的某些拖拽上传的网站或者Web框架一样,将图片拖拽到指定位置后直接进行上传以及预览,减少找文件、操作的时间。本文主要使用WinformPictureBox控件+.Net6 WebApi实现。开发环境:.NET Framework4.8+.Net6开发工具:Visual Studio 2022实现步骤创建自定义控件,继承自PictureBox,然后定义以下属性privat...

zls365365的博客 216

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上传图片到SQL SERVER

上传图片到SQL SERVER 存为IMAGE类型的    protected void Button1_Click(object sender, EventArgs e)    {        HttpPostedFile post = imgInput.PostedFile;        int lent = post.ContentLength;        byte []le

758

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

关于winfrom 上传图片到服务方式

1.WebClient方式:注意是只能以byte[]流的方式上传,参数只能拼接在url上。适用于winfrom。 --前端调用 //将图片转为byte数组 byte[] pic = SaveImage(@"E:\CPS_VMS\AlarmCSharpDemo\girl.jpg"); //方式一 ...

weixin_38169359的博客 356

Winform客户端到Java服务端的图片展示和上传

图片上传在JavaWeb方面已经有成熟的组件,那么对应到Winform(C#编写的富客户端组件)客户端到Java服务端的图片展示和上传,其实也有一套为之可行的方案

沉默王二 3147

C# WinForm 上传图片,文件到服务器的方法Uploader.ashx

网上有很多方案,起初用时,因为对asp.net不太了解,觉得FTP实现不错,可是后来发现,如果机器在域控下,就会有问题。 一年过去了,asp.net也熟悉了,知道ajax没事应该用ashx,验证码也用ashx,当然这里要说的WinForm上传也应该是ashx了吧,哈哈,先提供简单思路: 接收文件的asp.net是:Uploader.ashx,相关代码: view plaincopy ...

weixin_33739541的博客 332

C# 编程WinForm 上传文件到 Asp.Net 的 Web项目

在做WinForm时,需要WinForm同Web进行交互,有时需要进行图片、文件的上传操作.   WinForm的代码如下:   private void button2_Click(object sender, EventArgs e) { // string a = MyUploader(this.textBox1.Text.Trim(), ...

纪敏强的博客 407
上一篇: IE10 LinkButton不能用的解决办法
下一篇: 职场七个好习惯
mx5721
博客等级 码龄17年 24粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值