利用webservice上传文件

客户端:
页面:加入一个FileUpload 控件,一个Button(btnUpload)
下面是btnUpload的事件:
 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(
"OK");
        }

        
else
        
{
            Response.Write(
"error");
        }


    }

新建一个webService 项目,以下是上传方法的代码:
/// <summary>
    
/// 通过WebService上传文件
    
/// </summary>
    
/// <param name="fs">文件二进制流</param>
    
/// <param name="fileName">文件名</param>
    
/// <returns></returns>

    [WebMethod(Description = "web提供的方法,上传文件到相应的地址")]    
    
public bool UploadFile(byte[] fs, string fileName)
    
{
        
try
        
{
            
///定义并实例化一个内存流,以存放提交上来的字节数组。
            System.IO.MemoryStream m = new System.IO.MemoryStream(fs);
            
//取出存放地址,可以通过数据库里存放,不用定死了。此处只是做DEMO。
            string strFile = "E:" + "\\" + "Personal files" + "\\" + "good things" + "\\" +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;
        }


    }
posted @ 2007-04-03 16:47  Ame  阅读(4692)  评论(3编辑  收藏  举报