|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我认为,可以通过更加简单的首次编译,而增加第二次编译的负担,来提高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地点,点击前去,考证经由过程后即增加乐成了。以下图:
然后,我们就能够在使用程序中利用它了,为了平安,我们在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更深入的研究了一下,以方便我以后更好的运用它,同时我也讲讲使用它的感受。 |
|