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. 在订单服务中使用Hystrix进行熔断设置

    使用Hystrix熔断(上) 在一个分布式系统里,一个服务依赖多个服务,可能存在某个服务调用失败,         比如超时.异常等,如何能够保证在一个依赖出问题的情况下,不会导致整体服务失败,   ...

  2. Git 版本恢复命令reset

    reset命令有3中方式: git reset -mixed: 此为默认方式,不带任何参数的git reset, 使用这种方式,项目会回退到某个版本,只保留源码,回退commit和index的信息. ...

  3. 机器学习-svd实现人脸识别

    加载sklearn中的人脸数据集 from sklearn.datasets import fetch_lfw_people faces = fetch_lfw_people() 执行上面的第二行程序 ...

  4. 机器学习笔记--Hoeffding霍夫丁不等式

    Hoeffding霍夫丁不等式 在<>第八章"集成学习"部分, 考虑二分类问题\(y \in \{-1, +1\}\) 和真实函数\(f\), 假定基分类器的错误率为\ ...

  5. chrome 调试 ios h5

    1,安装itunes, 否则无法识别iphone设备 2,开启调试模式 ,打开 iPhone 依次进入 设置 > Safari > 高级 > Web 检查 > 启用 3,下载 ...

  6. Comet OJ - Contest #5 简要题解

    好久没更博了,还是象征性地更一次. 依然延续了简要题解的风格. 题目链接 https://cometoj.com/contest/46 题解 A. 迫真字符串 记 \(s_i\) 表示数字 \(i\) ...

  7. Unity插件研究-EasyTouch V5

    抽空研究了下Easy Touch 5插件,发现确实很好用,下面是相应的用法: 1. Easy Touch Controls:实现虚拟摇杆的组件 在项目的"Hierarchy"窗口下 ...

  8. SOLID Principles

    Intention: more understandable, easier to maintain and easier to extend.(通过良好的设计使得代码easy and simple, ...

  9. Mysql、Navicat Premium 12连接

    1.配置MySQL80的环境 安装好MySQL,为MySQL配置环境变量.MySQL默认安装在C:\Program Files下. 1)新建MYSQL_HOME变量,并配置:C:\Program Fi ...

  10. 通过Kubeadm搭建Kubernetes集群

    历经断断续续学习的两天,终于完成了一个简单k8s集群. 参考 https://www.cnblogs.com/edisonchou/p/aspnet_core_on_k8s_deepstudy_par ...