c# post文字图片至服务器
-
最近由于项目需要实现c#提交文字及数据至服务器,因此研究了一下c# php数据传送;
下面用一个示例来演示,c# post文字+图片 ,php端接收;
post提交数据核心代码(post数据提交)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Drawing;
using System.Web;
using System.Net;
namespace postpic
{
class
postClass
{
/// <summary>
/// 向服务器post文字和图片
/// </summary>
///<param name="url">url
///<param name="userName">用户名
///<param name="userPwd">密码
///<param name="jpegPath">头像地址
/// <returns>返回服务器返回值</returns>
public
string post(string url,string userName, string userPwd, string jpegPath)
{
//将图片转化为byte[]再转化为string
string array = Convert.ToBase64String(imageToByteArray(jpegPath));
//构造post提交字段
string para = name=+userName+&pwd=+userPwd+&head=+HttpUtility.UrlEncode(array);
#region HttpWebRequest写法
HttpWebRequest httpWeb = (HttpWebRequest)WebRequest.Create(url);
httpWeb.Timeout =
20000
;
httpWeb.Method = POST;
httpWeb.ContentType = application/x-www-form-urlencoded;
byte
[] bytePara = Encoding.ASCII.GetBytes(para);
using (Stream reqStream = httpWeb.GetRequestStream())
{
//提交数据
reqStream.Write(bytePara,
0
, para.Length);
}
//获取服务器返回值
HttpWebResponse httpWebResponse = (HttpWebResponse)httpWeb.GetResponse();
Stream stream = httpWebResponse.GetResponseStream();
StreamReader streamReader =
new
StreamReader(stream, Encoding.GetEncoding(utf-
8
));
//获得返回值
string result = streamReader.ReadToEnd();
stream.Close();
#endregion
//将服务器返回值返回
return
result;
}
/// <summary>
/// 图片转为Byte字节数组
/// </summary>
///<param name="FilePath">路径
/// <returns>字节数组</returns>
private
byte
[] imageToByteArray(string FilePath)
{
using (MemoryStream ms =
new
MemoryStream())
{
using (Image imageIn = Image.FromFile(FilePath))
{
using (Bitmap bmp =
new
Bitmap(imageIn))
{
bmp.Save(ms, imageIn.RawFormat);
}
}
return
ms.ToArray();
}
}
}
}
一、c#客户端
为了方便说明,我直接简化了,一个提交按钮就好了。
二、需要提交的图片
该图片存放在俺的E盘根目录下面~~~~~(贴吧随便抓的一张图片)
path = @E:head.jpg;
三、php服务端
接收图片后存放至,path = @C:Loginlog;
附录:
c#端代码:
c#界面简单代码~~~~~(该代码可略过~~~~~)
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace postpic
{
public
partial
class
postFrom : Form
{
public
postFrom()
{
InitializeComponent();
}
/// <summary>
/// 提交按钮,提交post数据
/// </summary>
///<param name="sender">
///<param name="e">
private
void
btnpost_Click(object sender, EventArgs e)
{
//postClass为数据提交类
postClass ps =
new
postClass();
string url =
@http
:
//localhost/login.php;
string name = DooZn;
string pwd = a12345;
string jpegPath =
@E
:head.jpg;
//提交数据
string value = ps.post(url,name,pwd,jpegPath);
//value为服务器返回值
if
(value.Contains(
1
))
{
MessageBox.Show(登陆成功.);
}
else
if
(value.Contains(
0
))
{
MessageBox.Show(登陆失败.);
}
else
{
MessageBox.Show(未知错误.);
}
}
}
}
c# post文字图片至服务器的更多相关文章
- HttpClient4的使用,模拟浏览器登陆新浪微博,发表微博和文字+图片微博
HttpClient4,最原始的需求就是使用其来模拟浏览器想服务器发起http请求,当然,他的功能不止于此,但是我需要的就是这个功能而已,jdk也有其自带的类似的api:UrlConnection,效 ...
- navigation和tabbar上的文字.图片 自定义
[[UITabBarItem appearance] setTitleTextAttributes:@{ UITextAttributeTextColor : [UIColor blackColor] ...
- java生成竖排文字图片
package com.kadang.designer.web.action;import java.awt.Color;import java.awt.Font;import java.awt.Fo ...
- jquery 单行滚动、批量多行滚动、文字图片翻屏滚动效果代码
jquery单行滚动.批量多行滚动.文字图片翻屏滚动效果代码,需要的朋友可以参考下. 以下代码,运行后,需要刷新下,才能加载jquery,要不然看不到效果.一.单行滚动效果 <!DOCTYPE ...
- 透明窗口(窗口上面文字图片等内容不透明)的实现(使用SetLayeredWindowAttributes API函数)
透明窗口(窗口上面文字图片等内容不透明)的实现 本文讨论通过SetLayeredWindowAttributes来实现本文的目的. SetLayeredWindowAttributes的实现必须将窗口 ...
- <转载>使CSS文字图片div元素居中方法之水平居中的几个方法
文字居中,文字垂直居中水平居中,图片居中,图片水平居中垂直居中,块元素垂直居中?当我们在做前端开发是时候关于css居中的问题是很常见的.情 况有很多种,不同的情况又有不同的解决方式.水平居中的方式解决 ...
- 使用multer搭建一个图片接收服务器
为了测试图片上传插件的上传功能是否好用,最近尝试搭建了一个接收图片的服务器,因为图片上传的编码格式是form-data,所以我选择使用express+multer,实现过程中发现有几个需要注意的地方, ...
- iOS Button 上文字图片位置的设置
1. 添加图片+文字/文字+图片 ,不分前后,图片默认在文字前边 加空格隔开 UIButton * button =[[UIButton alloc] initWithFrame:CGRectMake ...
- node环境使用multer搭建一个图片接收服务器
为了测试图片上传插件的上传功能是否好用,最近尝试搭建了一个接收图片的服务器,因为图片上传的编码格式是form-data,所以我选择使用express+multer,实现过程中发现有几个需要注意的地方, ...
随机推荐
- c#编写简单计算器
刚接触c#,依照惯例,写个简单的计算器,只写了加法,乘法,其他的类似,编辑器用的vs2008 首先打开vs ,新建c#的Windows窗体应用程序,接下来的项目的名称是WindowsFormsAppl ...
- 只有PD号的调起
cicsterm-> CECI -> LI-> P -> TestQuery
- Android NDK 环境搭建 + 测试例程
懒得废话一大堆概念,关于ADT.NDK的概念要是你不懂,怎么会搜到这里来?所以你只需要根据下面的步骤来,就可以完成NDK环境搭建了. 步骤:(假设你未安装任何相关开发工具,如果已经安装了,就可以跳过) ...
- selenium自动化测试(1):环境搭建
Selenium是一款优秀的WEB自动化测试工具,它功能强大,易于使用,支持多种平台.多种浏览器和多种开发语言.这里介绍使用python+selenium进行自动化测试的一些基础知识. 在Window ...
- centos 安装php ide (eclipse + php 插件)
1.检查更新并安装eclipse yum check-update yum install eclipse*此时的 eclipse 已经安装好了,默认是在/usr/lib/下的,可以通过cd /u ...
- MVC , MVP , MVVM【转 阮一峰的网络日志】
一.MVC MVC模式的意思是,软件可以分成三个部分. 视图(View):用户界面. 控制器(Controller):业务逻辑 模型(Model):数据保存 各部分之间的通信方式如下. View 传送 ...
- 解决IE6下Position:fixed问题(只用css)
在IE6.0及以下版本的浏览器里是不支持position:fixed.而在IE7,IE8,firefox,opera,chrome都可以完美的支持此特性的.解决此问题的要点主要有: 1).容器要有一个 ...
- Chrome远程调试Android上Chrome的页面
下载最新的google chrome canary 手机chrome开启usb网页调试,如图所示: 在终端运行 ? SHELL adb forward tcp:9222 localabstract:c ...
- VB6-系统打印常识
在一次做图片打印的时候,对位置的调整老是不得法,后来通过CBM666老师的帮助才解决问题,分享以下他给的帮助. , , picA.Width , picA.Height Printer.End ...
- MVC+EF 随笔小计——NuGet程序包管理
安装EF 打开 工具-库程序包管理器-程序包管理器控制台 输入 install-package entityframework 去MSDN上查看下EF的架构图:http://msdn.microsof ...