作者热门文章
- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章ASP.NET中利用WebClient上传图片到远程服务的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1、客户端 。
1.页面 。
1
2
3
4
5
6
|
<form id=
"Form1"
method=
"post"
runat=
"server"
enctype=
"multipart/form-data"
>
<input id=
"MyFile"
type=
"file"
runat=
"server"
/>
<br />
<br />
<asp:Button ID=
"Button1"
runat=
"server"
Text=
"上载文件"
OnClick=
"Button1_Click"
></asp:Button>
</form>
|
2.后台 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
System.Web.HttpFileCollection oFiles = System.Web.HttpContext.Current.Request.Files;
string
FilePath = oFiles[0].FileName;
string
FileName = FilePath.Substring(FilePath.LastIndexOf(
"\\"
) + 1);
byte
[] b =
new
byte
[oFiles[0].ContentLength];
System.IO.Stream fs = (System.IO.Stream)oFiles[0].InputStream;
fs.Read(b, 0, oFiles[0].ContentLength);
string
postData =
"data="
+ HttpUtility.UrlEncode(Convert.ToBase64String(b));
var webclient =
new
WebClient();
webclient.Headers.Add(
"Content-Type"
,
"application/x-www-form-urlencoded"
);
byte
[] byteArray = Encoding.UTF8.GetBytes(postData);
//byte[] buffer = webclient.UploadData("http://localhost/datapush/DataPush.ashx", "POST", byteArray);//ashx
byte
[] buffer = webclient.UploadData(
"http://localhost/datapush/WebServiceDataPush.asmx/DataPush"
,
"POST"
, byteArray);//asmx
var msg = Encoding.UTF8.GetString(buffer);
Response.Write(msg);
|
2、服务端 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
string
msg =
""
;
byte
[] filedata = Convert.FromBase64String(context.Request[
"data"
]);
if
(filedata.Length == 0)
{
msg=
"{\"code\":\"上传的是空文件\"}"
;
}
if
(filedata.Length > 1048576)
{
msg =
"{\"code\":\"图片大小不能超过1M\"}"
;
}
string
fileextension = filedata[0].ToString() + filedata[1].ToString();
if
(fileextension ==
"7173"
)
{
fileextension =
"gif"
;
}
else
if
(fileextension ==
"255216"
)
{
fileextension =
"jpg"
;
}
else
if
(fileextension ==
"13780"
)
{
fileextension =
"png"
;
}
else
if
(fileextension ==
"6677"
)
{
fileextension =
"bmp"
;
}
else
if
(fileextension ==
"7373"
)
{
fileextension =
"tif"
;
}
else
{
msg =
"{\"code\":\"上传的文件不是图片\"}"
;
}
try
{
//保存图片
string
filename = Guid.NewGuid().ToString(
"D"
) +
"."
+ fileextension;
System.IO.MemoryStream ms =
new
System.IO.MemoryStream(filedata);
System.IO.FileStream fs =
new
System.IO.FileStream(context.Server.MapPath(
"~/"
) +
"/采集图片/"
+ filename, System.IO.FileMode.Create);
ms.WriteTo(fs);
ms.Close();
fs.Close();
fs =
null
;
ms =
null
;
msg =
"{\"code\":\"上传图片成功\"}"
;
}
catch
(Exception exe)
{
msg =
"{\"code\":\""
+ exe.Message +
"\"}"
;
}
|
以上所述是小编给大家介绍的ASP.NET中利用WebClient上传图片到远程服务的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我网站的支持! 。
原文链接:http://www.cnblogs.com/jinxin201211/archive/2017/01/13/6282096.html 。
最后此篇关于ASP.NET中利用WebClient上传图片到远程服务的方法的文章就讲到这里了,如果你想了解更多关于ASP.NET中利用WebClient上传图片到远程服务的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!