-
最近由于项目需要实现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{classpostClass{/// <summary>/// 向服务器post文字和图片/// </summary>///<param name="url">url///<param name="userName">用户名///<param name="userPwd">密码///<param name="jpegPath">头像地址/// <returns>返回服务器返回值</returns>publicstring post(string url,string userName, string userPwd, string jpegPath){//将图片转化为byte[]再转化为stringstring 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 =newStreamReader(stream, Encoding.GetEncoding(utf-8));//获得返回值string result = streamReader.ReadToEnd();stream.Close();#endregion//将服务器返回值返回returnresult;}/// <summary>/// 图片转为Byte字节数组/// </summary>///<param name="FilePath">路径/// <returns>字节数组</returns>privatebyte[] imageToByteArray(string FilePath){using (MemoryStream ms =newMemoryStream()){using (Image imageIn = Image.FromFile(FilePath)){using (Bitmap bmp =newBitmap(imageIn)){bmp.Save(ms, imageIn.RawFormat);}}returnms.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{publicpartialclasspostFrom : Form{publicpostFrom(){InitializeComponent();}/// <summary>/// 提交按钮,提交post数据/// </summary>///<param name="sender">///<param name="e">privatevoidbtnpost_Click(object sender, EventArgs e){//postClass为数据提交类postClass ps =newpostClass();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(登陆成功.);}elseif(value.Contains(0)){MessageBox.Show(登陆失败.);}else{MessageBox.Show(未知错误.);}}}}