public void ProcessRequest(HttpContext context)
{
var request = context.Request;
var targetName = context.Server.UrlDecode(request.QueryString["tg"]);
var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "app_data/UploadFiles", targetName);
request.Files[0].SaveAs(path);
context.Response.Output.Write("OK");
}
public bool IsReusable
{
get
{
return false;
}
}
}
那么客户端可以使用 WebClient.UploadFile 上传文件,例如
var file = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "clientaccesspolicy.xml");
var data = new WebClient().UploadFile("http://localhost:2171/TestSaveFile.ashx?tg=" + HttpUtility.UrlEncode("测试.txt"), file);
var result = Encoding.UTF8.GetString(data);
Debug.Assert(result == "OK");
public void ProcessRequest(HttpContext context)
{
using (var sr = new System.IO.StreamReader(context.Request.InputStream))
{
var data = sr.ReadToEnd();
context.Response.ContentType = "text/plain";
context.Response.Write(string.Format("参数={0}",data));
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
而假设我们要把一个 .net对象序列化之后上传,例如对象类的定义是
public class MyTestType
{
public DateTime x;
public string y;
}
上传一个对象可以写
var obj = new MyTestType
{
x = DateTime.Now,
y = "现在"
};
var p = JsonConvert.SerializeObject(obj);
var data = new WebClient().UploadData("http://localhost:2171/TestWebClientUpload.ashx", Encoding.UTF8.GetBytes(p));
var result = Encoding.UTF8.GetString(data);
var p = "kakdfa8938ksdfa faks23423 我是一个男人 哦也 alsdkfassadf";
var data = new WebClient().UploadData("http://localhost:2171/TestWebClientUpload.ashx", Encoding.UTF8.GetBytes(p));
var result = Encoding.UTF8.GetString(data);
然后看看服务器端程序结果。
#19
这改成POST 不成么,UPload也是POST呀。
#20
咳,看来我是给你的例子写复杂了。
你可以把“上传一个对象”的例子改为这个:
上传一个字符串
var p = "kakdfa8938ksdfa faks23423 我是一个男人 哦也 alsdkfassadf";
var data = new WebClient().UploadData("http://localhost:2171/TestWebClientUpload.ashx", Encoding.UTF8.GetBytes(p));
var result = Encoding.UTF8.GetString(data);
public void ProcessRequest(HttpContext context)
{
using (var sr = new System.IO.StreamReader(context.Request.InputStream))
{
var data = sr.ReadToEnd();
context.Response.ContentType = "text/plain";
context.Response.Write(string.Format("参数={0}",data));
}
}
OK 。。我理解你的意思,也确实发现服务器接收到了这个字符串。。。但能不能再麻烦您一下,这个字符串我传给了服务器 是要去操作的。。比如切割,服务器收到了这个字符串,那么这个字符串怎么变成服务器上一个可以操作的变量呢....???不是要切割的代码,而是要能将这个字符串变成服务器上的变量的做法代码 麻烦了
#23
OK 。。我理解你的意思,也确实发现服务器接收到了这个字符串。。。但能不能再麻烦您一下,这个字符串我传给了服务器 是要去操作的。。比如切割,服务器收到了这个字符串,那么这个字符串怎么变成服务器上一个可以操作的变量呢....???不是要切割的代码,而是要能将这个字符串变成服务器上的变量的做法代码 麻烦了
public void ProcessRequest(HttpContext context)
{
var request = context.Request;
var targetName = context.Server.UrlDecode(request.QueryString["tg"]);
var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "app_data/UploadFiles", targetName);
request.Files[0].SaveAs(path);
context.Response.Output.Write("OK");
}
public bool IsReusable
{
get
{
return false;
}
}
}
那么客户端可以使用 WebClient.UploadFile 上传文件,例如
var file = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "clientaccesspolicy.xml");
var data = new WebClient().UploadFile("http://localhost:2171/TestSaveFile.ashx?tg=" + HttpUtility.UrlEncode("测试.txt"), file);
var result = Encoding.UTF8.GetString(data);
Debug.Assert(result == "OK");
public void ProcessRequest(HttpContext context)
{
using (var sr = new System.IO.StreamReader(context.Request.InputStream))
{
var data = sr.ReadToEnd();
context.Response.ContentType = "text/plain";
context.Response.Write(string.Format("参数={0}",data));
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
而假设我们要把一个 .net对象序列化之后上传,例如对象类的定义是
public class MyTestType
{
public DateTime x;
public string y;
}
上传一个对象可以写
var obj = new MyTestType
{
x = DateTime.Now,
y = "现在"
};
var p = JsonConvert.SerializeObject(obj);
var data = new WebClient().UploadData("http://localhost:2171/TestWebClientUpload.ashx", Encoding.UTF8.GetBytes(p));
var result = Encoding.UTF8.GetString(data);
public void ProcessRequest(HttpContext context)
{
using (var sr = new System.IO.StreamReader(context.Request.InputStream))
{
var data = sr.ReadToEnd();
context.Response.ContentType = "text/plain";
context.Response.Write(string.Format("参数={0}",data));
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
而假设我们要把一个 .net对象序列化之后上传,例如对象类的定义是
public class MyTestType
{
public DateTime x;
public string y;
}
上传一个对象可以写
var obj = new MyTestType
{
x = DateTime.Now,
y = "现在"
};
var p = JsonConvert.SerializeObject(obj);
var data = new WebClient().UploadData("http://localhost:2171/TestWebClientUpload.ashx", Encoding.UTF8.GetBytes(p));
var result = Encoding.UTF8.GetString(data);
var p = "kakdfa8938ksdfa faks23423 我是一个男人 哦也 alsdkfassadf";
var data = new WebClient().UploadData("http://localhost:2171/TestWebClientUpload.ashx", Encoding.UTF8.GetBytes(p));
var result = Encoding.UTF8.GetString(data);
然后看看服务器端程序结果。
#19
这改成POST 不成么,UPload也是POST呀。
#20
咳,看来我是给你的例子写复杂了。
你可以把“上传一个对象”的例子改为这个:
上传一个字符串
var p = "kakdfa8938ksdfa faks23423 我是一个男人 哦也 alsdkfassadf";
var data = new WebClient().UploadData("http://localhost:2171/TestWebClientUpload.ashx", Encoding.UTF8.GetBytes(p));
var result = Encoding.UTF8.GetString(data);
public void ProcessRequest(HttpContext context)
{
using (var sr = new System.IO.StreamReader(context.Request.InputStream))
{
var data = sr.ReadToEnd();
context.Response.ContentType = "text/plain";
context.Response.Write(string.Format("参数={0}",data));
}
}
OK 。。我理解你的意思,也确实发现服务器接收到了这个字符串。。。但能不能再麻烦您一下,这个字符串我传给了服务器 是要去操作的。。比如切割,服务器收到了这个字符串,那么这个字符串怎么变成服务器上一个可以操作的变量呢....???不是要切割的代码,而是要能将这个字符串变成服务器上的变量的做法代码 麻烦了
#23
OK 。。我理解你的意思,也确实发现服务器接收到了这个字符串。。。但能不能再麻烦您一下,这个字符串我传给了服务器 是要去操作的。。比如切割,服务器收到了这个字符串,那么这个字符串怎么变成服务器上一个可以操作的变量呢....???不是要切割的代码,而是要能将这个字符串变成服务器上的变量的做法代码 麻烦了