仓酷云

标题: NET网页编程之在WinForm中使用WebService上传图片到服务器 [打印本页]

作者: 谁可相欹    时间: 2015-1-16 14:21
标题: NET网页编程之在WinForm中使用WebService上传图片到服务器
我认为,可以通过更加简单的首次编译,而增加第二次编译的负担,来提高java的运行效率。只是将java源代码进行简单的等价转换,而不假设编译成某种虚拟机器的目标格式,而由本地编译器针对性的二次编译。由于WinForm都是运转在当地的,而我们的网站一样平常都是布署在服务器上,运转在服务器上的,以是在网站下面上传文件,就宛如彷佛于保留文件到当地。但在WinForm上就纷歧样了,本章我们复杂举一个在WinForm使用WebService上传文件到服务器的办法:

起首们先创立一个WebService服务,该服务包括一个UpdateFile办法,该办法吸收两个byte[]与string范例参数。该办法十分复杂,就是依照string参数指定的路径和称号将byte[]参数值保留到服务器,代码以下:
[WebService(Namespace="http://tempuri.org/")]
[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
publicclassWebService:System.Web.Services.WebService
{
[WebMethod]
publicboolUpdateFile(byte[]content,stringpathandname)
{
File.WriteAllBytes(Server.MapPath(pathandname),content);
}
}

为了平安,我们能够考证一下pathandname的值,使其只保留图片格局的文件。全体代码以下:
[WebService(Namespace="http://tempuri.org/")]
[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
publicclassWebService:System.Web.Services.WebService
{
[WebMethod]
publicboolUpdateFile(byte[]content,stringpathandname)
{
intindex=pathandname.LastIndexOf(".");
if(index==0)
{
returnfalse;
}
else
{
stringextended=string.Empty;
if(index+1==pathandname.Length)
{
returnfalse;
}
else
{
extended=pathandname.Substring(index+1);
if(extended=="jpeg"||extended=="gif"||extended=="jpg")
{
try
{
File.WriteAllBytes(Server.MapPath(pathandname),content);
returntrue;
}
catch(Exceptionex)
{
returnfalse;
}
}
else
{
returnfalse;
}
}
}
}
}

好了,创立完WebService后,将它布署到服务器下面,然后在Winform中增加对该服务的援用,增加办法以下:
在winform项目标援用-增加服务援用,在翻开的对话框的地点栏中增加布署好的WebService地点,点击前去,考证经由过程后即增加乐成了。以下图:
NET网页编程之在WinForm中使用WebService上传图片到服务器
登录/注册后可看大图


然后,我们就能够在使用程序中利用它了,为了平安,我们在winform中再次考证上传文件只能够为图片。代码以下:
privatevoidbutton11_Click(objectsender,EventArgse)
{
OpenFileDialogfileDialog=newOpenFileDialog();

if(fileDialog.ShowDialog()==DialogResult.OK)
{
stringextension=Path.GetExtension(fileDialog.FileName);
string[]str=newstring[]{".gif",".jpge",".jpg"};
if(!str.Contains(extension))
{
MessageBox.Show("仅能上传gif,jpge,jpg格局的图片!");
}
else
{
FileInfofileInfo=newFileInfo(fileDialog.FileName);
if(fileInfo.Length>20480)
{
MessageBox.Show("上传的图片不克不及年夜于20K");
}
else
{
Streamfile=fileDialog.OpenFile();

byte[]bytes=newbyte[file.Length];
file.Read(bytes,0,bytes.Length);

//实例化WebService服务。ServiceReference1是我们在增加援用时设置的定名空间
ServiceReference1.WebServiceSoapClientWebServiceSoapClient=newAutoPage.ServiceReference1.WebServiceSoapClient();

DateTimetime=DateTime.Now;
//重定名图片的称号与路径
stringpathandname="/images/"+time.ToString("yyyyMMddHHmmss")+extension;
if(WebServiceSoapClient.UpdateFile(bytes,pathandname))
{
MessageBox.Show("上传乐成!");
this.textBox1.Text=pathandname;
}
else
{
MessageBox.Show("上传失利!");
}
}
}
}
}


本示例代码仅为完成该功效,对照复杂,仅供人人参考!2003年中微软发布最新版本的ASP.netWebMatrix,对于我们喜欢用Asp.net来编程的朋友实在是个好消息,我也实实在在的将Asp.net更深入的研究了一下,以方便我以后更好的运用它,同时我也讲讲使用它的感受。
作者: 精灵巫婆    时间: 2015-1-18 13:29
JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。
作者: 谁可相欹    时间: 2015-1-25 11:55
主流网站开发语言之PHPHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。
作者: 不帅    时间: 2015-2-2 22:02
目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.
作者: 只想知道    时间: 2015-2-8 11:14
大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。
作者: 山那边是海    时间: 2015-2-25 10:44
对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。
作者: 变相怪杰    时间: 2015-3-7 20:15
大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。
作者: 乐观    时间: 2015-3-15 14:05
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
作者: 仓酷云    时间: 2015-3-22 01:49
现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2