unity3d中的http通信 二
转载自 http://www.cnblogs.com/88999660/archive/2013/03/11/2954279.html
如果侵权,请及时通知我删除!
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; using System.Text; namespace UpdatePhoto { public partial class UpdatePhoto : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string id = Request.Form["id"]; HttpPostedFile hfc = Request.Files["Photo"]; if (hfc == null) return; Stream sm = hfc.InputStream; byte[] buffer = new byte[sm.Length]; sm.Read(buffer, 0, buffer.Length); sm.Close(); string path = Request.PhysicalApplicationPath + id + "\\"; //判断路径是否存在 if (!Directory.Exists(path)) { //如果不存在就创建 Directory.CreateDirectory(path); } //产生文件名 string fileName = path + id + "_" + DateTime.Now.ToString("yyyy-MM-dd_hh-mm-ss") + "_" + DateTime.Now.Millisecond.ToString() + ".png"; Stream flstr = new FileStream(fileName, FileMode.Create); BinaryWriter sw = new BinaryWriter(flstr, Encoding.Unicode); sw.Write(buffer); flstr.Close(); sw.Close(); } } }
client:
using UnityEngine; using System.Collections; public class updatePhoto : MonoBehaviour { // Use this for initialization void Start () { StartCoroutine(ScreenShot()); } IEnumerator ScreenShot(){ int width = Screen.width; int height = Screen.height; // string path = Application.dataPath+"/Resources/"; yield return new WaitForEndOfFrame(); Texture2D tex = new Texture2D(width,height,TextureFormat.RGB24,false); tex.ReadPixels(new Rect(0,0,width,height),0,0); //tex.ReadPixels(new Rect(0, 0, width, height), 0, 0); tex.Apply(); byte[] bytes = tex.EncodeToPNG(); WWWForm newForm = new WWWForm(); newForm.AddField("id","123"); newForm.AddBinaryData("Photo",bytes,"photo.jpg"); WWW w = new WWW("http://localhost:36944/UpdatePhoto.aspx", newForm); while (!w.isDone){yield return new WaitForEndOfFrame();} if (w.error != null){Debug.LogError(w.error);} } }