zoukankan      html  css  js  c++  java
  • WebService中实现上传下载文件

    不多说,直接看代码:

    /*上传文件的WebService*/
    
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Diagnostics;
    using System.Web;
    using System.Web.Services;
    using System.IO;
    
    /// <summary>
    /// Upload 的摘要说明。
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/",
    Description = "在Web Services里利用.NET框架进上载文件。")]
    public class UploadFile : System.Web.Services.WebService
    {
    public UploadFile()
    {
    }
    
    [WebMethod(Description = "Web 服务提供的方法,返回是否文件上载成功与否。")]
    public string Upload(byte[] fs, string fileType)
    {
    string FileName = System.DateTime.Now.ToString("yyyyMMddHHmmssms") +"." +fileType;
    try
    {
    ///定义并实例化一个内存流,以存放提交上来的字节数组。
    MemoryStream m = new MemoryStream(fs);
    ///定义实际文件对象,保存上载的文件。
    FileStream f = new FileStream(Server.MapPath(".") + "\UploadFile\"
    + FileName, FileMode.Create);
    ///把内内存里的数据写入物理文件
    m.WriteTo(f);
    m.Close();
    f.Close();
    f = null;
    m = null;
    return FileName;
    }
    catch (Exception ex)
    {
    return null;
    }
    }
    
    [WebMethod(Description = "Web 服务提供的方法,删除指定文件")]
    public void Delete(string fileName)
    {
    string filePath = Server.MapPath(".") + "\UploadFile\" + fileName;
    File.Delete(filePath);
    }
    }
    
    /*下载文件*/
    
    using System;
    using System.Web;
    using System.Collections;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using System.IO;
    
    /// <summary>
    /// GetBinaryFile 的摘要说明。
    /// Web Services名称:GetBinaryFile
    /// 功能:返回服务器上的一个文件对象的二进制字节数组。
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/",
    Description = "在Web Services里利用.NET框架进行传递二进制文件。")]
    public class GetBinaryFile : System.Web.Services.WebService
    {
    /// <summary>
    /// Web 服务提供的方法,返回给定文件的字节数组。
    /// </summary>
    [WebMethod(Description = "Web 服务提供的方法,返回给定文件的字节数组")]
    public byte[] GetFile(string requestFileName)
    {
    string fileName = Server.MapPath(".") + "\UploadFile\" + requestFileName;
    return getBinaryFile(fileName);
    }
    
    /// <summary>
    /// getBinaryFile:返回所给文件路径的字节数组。
    /// </summary>
    /// <param name="filename"></param>
    /// <returns></returns>
    public byte[] getBinaryFile(string filename)
    {
    if (File.Exists(filename))
    {
    try
    {
    ///打开现有文件以进行读取。
    FileStream s = File.OpenRead(filename);
    return ConvertStreamToByteBuffer(s);
    s.Close();
    }
    catch (Exception e)
    {
    return new byte[0];
    }
    }
    else
    {
    return new byte[0];
    }
    }
    
    /// <summary>
    /// ConvertStreamToByteBuffer:把给定的文件流转换为二进制字节数组。
    /// </summary>
    /// <param name="theStream"></param>
    /// <returns></returns>
    public byte[] ConvertStreamToByteBuffer(System.IO.Stream theStream)
    {
    int b1;
    System.IO.MemoryStream tempStream = new System.IO.MemoryStream();
    while ((b1 = theStream.ReadByte()) != -1)
    {
    tempStream.WriteByte(((byte)b1));
    }
    return tempStream.ToArray();
    
    }
    
    [WebMethod(Description = "Web 服务提供的方法,返回给定文件类型。")]
    public string GetImageType()
    {
    ///这里只是测试,您可以根据实际的文件类型进行动态输出
    return "image/jpg";
    }
    }
    
    /*调用上传*/
    
    string filePath = "c:	est.jpg";
    FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate,
    FileAccess.Read);
    // Read the Data into the Byte Array
    byte[] fileByte = new byte[fs.Length];
    fs.Read(fileByte, 0, (int)fs.Length);
    
    UploadFile uploadfile = new UploadFile();
    int indexof = filePath.LastIndexOf(".")+1;
    string fileExt = filePath.Substring(indexof, filePath.Length - indexof);
    string filename = uploadfile.Upload(fileByte, fileExt);
  • 相关阅读:
    BEC listen and translation exercise 44
    中译英12
    BEC listen and translation exercise 43
    中译英11
    BEC listen and translation exercise 42
    中译英10
    BEC listen and translation exercise 41
    中译英9
    BEC listen and translation exercise 40
    中译英8
  • 原文地址:https://www.cnblogs.com/tonykan/p/3792027.html
Copyright © 2011-2022 走看看