ASPX页面所需控件:一个FileUpload 控件,一个Button(btnUpload);
一、ASPX页面Button的事件代码
protected void btnUpload_Click(object sender, EventArgs e)
{
/**/////获得上传文件的名称
//FileInfo file = new FileInfo(fileUpload.PostedFile.FileName);
//将上传的文件转换为二进制流
byte[] fileContent = fileUpload.FileBytes;
//获得上传文件的名称
string fileName = fileUpload.FileName;
//实例化webservice
AdService.Service adTemp = new AdService.Service();
if (adTemp.UploadFile(fileContent, fileName)) //调用上传方法。
{
Response.Write("已上传成功");
}
else
{
Response.Write("上传图片发生未知错误");
}
}
二、WebService代码
新建一个WebService项目,WebService文件名称为AdService.asmx;
[WebMethod(Description = "WebService上传文件代码")]
public bool UploadFile(byte[] fs, string fileName)
{
try
{
/**////定义并实例化一个内存流,以存放提交上来的字节数组。
System.IO.MemoryStream m = new System.IO.MemoryStream(fs);
//取出存放地址,可以通过数据库里存放,不用定死了。此处只是做DEMO。
//将文件保存在网站虚拟目录中,请自行修改路径
string strFile = Server.MapPath("MyFiles\\" + FileName);
/**////定义实际文件对象,保存上载的文件。
System.IO.FileStream fl = new System.IO.FileStream(strFile, FileMode.OpenOrCreate);
/**////把内内存里的数据写入物理文件
m.WriteTo(fl);
m.Close();
fl.Close();
m = null;
fl = null;
return true;
}
catch
{
return false;
}
}