WebService代码:

///     /// 上传文件     ///     /// 文件的byte[]     /// 上传文件的路径     /// 上传文件名字     ///     [WebMethod]     public bool UploadFile(byte[] fs, string path, string fileName)     {         bool flag = false;         try         {             //获取上传案例图片路径             path = Server.MapPath(path);             if (!Directory.Exists(path))             {                 Directory.CreateDirectory(path);             }             //定义并实例化一个内存流,以存放提交上来的字节数组。             MemoryStream m = new MemoryStream(fs);             //定义实际文件对象,保存上载的文件。             FileStream f = new FileStream(path + "\" + fileName, FileMode.Create);             //把内内存里的数据写入物理文件             m.WriteTo(f);             m.Close();             f.Close();             f = null;             m = null;             flag = true;         }         catch (Exception ex)         {             flag = false;         }         return flag;     }

[WebMethod(Description = "下载服务器站点文件,传递文件相对路径")]     public byte[] DownloadFile(string strFilePath, string path)     {         FileStream fs = null;         string CurrentUploadFolderPath = HttpContext.Current.Server.MapPath(path);

string CurrentUploadFilePath = CurrentUploadFolderPath + "\" + strFilePath;         if (File.Exists(CurrentUploadFilePath))         {             try             {                 ///打开现有文件以进行读取。                 fs = File.OpenRead(CurrentUploadFilePath);                 int b1;                 System.IO.MemoryStream tempStream = new System.IO.MemoryStream();                 while ((b1 = fs.ReadByte()) != -1)                 {                     tempStream.WriteByte(((byte)b1));                 }                 return tempStream.ToArray();             }             catch (Exception ex)             {                 return new byte[0];             }             finally             {                 fs.Close();             }         }         else         {             return new byte[0];         }

客户端代码:

///         /// 上传图片附件         ///         ///         private bool UploadImage()         {             bool flag = true;             string path = @"C:\Documents and Settings\Administrator\My Documents\My Pictures\10121312156cf4a761c504fe69.jpg";//本地路径             byte[] bytes = GetBytesByPath(path);//获取文件byte[]             string uploadPath = "image";//上传服务器文件夹路径             string fileName = "img18.jpg";//文件名称             try             {                 localhost.Service s = new WindowsFormsApplication1.localhost.Service();                 if (s.UploadFile(bytes, uploadPath, fileName)) { flag = true; }                 else { flag = false; }             }             catch             {                 flag = false;             }             return flag;         }         ///         /// 根据文件的路径获取图片的byte[]         ///         ///         ///         public static byte[] GetBytesByPath(string path)         {             FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);             BinaryReader br = new BinaryReader(fs);             byte[] bytes = br.ReadBytes((int)fs.Length);             fs.Flush();             fs.Close();             return bytes;         }

private void DownFile()         {             localhost.Service s = new WindowsFormsApplication1.localhost.Service();             byte[] bs = s.DownloadFile("img18.jpg","image");             FileStream stream=new FileStream(@"C:\Documents and Settings\Administrator\My Documents\My Pictures\18.jpg", FileMode.CreateNew);             stream.Write(bs,0,bs.Length);             stream.Flush();             stream.Close();         }

web上传下载文件的更多相关文章

  1. java web service 上传下载文件

    1.新建动态web工程youmeFileServer,新建包com,里面新建类FileProgress package com; import java.io.FileInputStream; imp ...

  2. WEB上传大文件解决方案

    众所皆知,web上传大文件,一直是一个痛.上传文件大小限制,页面响应时间超时.这些都是web开发所必须直面的. 本文给出的解决方案是:前端实现数据流分片长传,后面接收完毕后合并文件的思路.下面贴出简易 ...

  3. C#实现http协议支持上传下载文件的GET、POST请求

    C#实现http协议支持上传下载文件的GET.POST请求using System; using System.Collections.Generic; using System.Text; usin ...

  4. 【WCF】利用WCF实现上传下载文件服务

    引言     前段时间,用WCF做了一个小项目,其中涉及到文件的上传下载.出于复习巩固的目的,今天简单梳理了一下,整理出来,下面展示如何一步步实现一个上传下载的WCF服务. 服务端 1.首先新建一个名 ...

  5. WebSSH画龙点睛之lrzsz上传下载文件

    本篇文章没有太多的源码,主要讲一下实现思路和技术原理 当使用Xshell或者SecureCRT终端工具时,我的所有文件传输工作都是通过lrzsz来完成的,主要是因为其简单方便,不需要额外打开sftp之 ...

  6. WEB上传大文件

    众所皆知,web上传大文件,一直是一个痛.上传文件大小限制,页面响应时间超时.这些都是web开发所必须直面的. 本文给出的解决方案是:前端实现数据流分片长传,后面接收完毕后合并文件的思路.下面贴出简易 ...

  7. web上传大文件(>4G)有什么解决方案?

    众所皆知,web上传大文件,一直是一个痛.上传文件大小限制,页面响应时间超时.这些都是web开发所必须直面的. 本文给出的解决方案是:前端实现数据流分片长传,后面接收完毕后合并文件的思路. 实现文件夹 ...

  8. rz和sz上传下载文件工具lrzsz

    ######################### rz和sz上传下载文件工具lrzsz ####################################################### ...

  9. linux上很方便的上传下载文件工具rz和sz

    linux上很方便的上传下载文件工具rz和sz(本文适合linux入门的朋友) ##########################################################&l ...

随机推荐

  1. rsyslog服务日志报错分析1

    客户问题: 最近对服务器进行日志检查时,发现部分主机的rsyslog服务状态有报错,报错详情如下 排查过程: 1.从报错截图来看,报错主要发生在文件'/usr/lib64/rsyslog/omazur ...

  2. AtCoder整理(持续更新中……)

    做了那么久的atcoder觉得自己的题解发的很乱 给有想和我一起交流atcoder题目(或者指出我做法的很菜)(或者指责我为什么整场比赛只会抄题解)的同学一个索引的机会??? 于是写了个爬虫爬了下 A ...

  3. python基础学习记录......

    1.IDEA写python 打开IDEA,File--->settings---->Plugins    输入python  安装   重启IDEA 2.新建Project     选择P ...

  4. 【转载】spring mvc 后端获得前端传递过来的参数的方法

    1.通过HttpServletRequest 获得 HttpServletRequest.getParameter(参数名),可以获得form表单中传递的参数,或ajax或url中传递过来的参数,如果 ...

  5. 一个好隐蔽的C/C++代码bug

    来自:微博@ruanyf, 一本书上说,下面的 C 语言代码可能会产生无限循环.看了半天,才意识到 Bug 在哪里. 完美解答: 数组下标越界.数组a总共有10个值,a[0]~a[9].for循环里面 ...

  6. python中浅拷贝和深拷贝分析

    首先,我们知道Python3中,有6个标准的数据类型,他们又分为可以变和不可变.不可变:Number(数字).String(字符串).Tuple(元组).可以变:List(列表).Dictionary ...

  7. cliff

    let me tell you,buddy. there's a faster gun. cming over yonder,when tomorrow comes.

  8. 记录学习Python的第一天

    这是我的第一篇博客,也是我学Python的第一天. 写这篇博客主要目的是为了记下我学习Python的过程以及所学到的知识点.我所学的是Python3版本,我所学的内容有如下几点: 1.python3中 ...

  9. flask使用tablib导出excel数据表

    在网页中常常有导出数据的需求,尤其是一下管理类平台.在flask中要导出excel数据表,通常可以使用xlwt库,创建文件并逐行写入数据,但是使用起来总是感觉很麻烦.tablib库相对操作更加方便. ...

  10. 修改feign解析器替换json

    @Bean public Logger.Level getFeignLoggerLevel() { return Logger.Level.FULL ; } @Bean public Response ...