web上传下载文件
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上传下载文件的更多相关文章
- java web service 上传下载文件
1.新建动态web工程youmeFileServer,新建包com,里面新建类FileProgress package com; import java.io.FileInputStream; imp ...
- WEB上传大文件解决方案
众所皆知,web上传大文件,一直是一个痛.上传文件大小限制,页面响应时间超时.这些都是web开发所必须直面的. 本文给出的解决方案是:前端实现数据流分片长传,后面接收完毕后合并文件的思路.下面贴出简易 ...
- C#实现http协议支持上传下载文件的GET、POST请求
C#实现http协议支持上传下载文件的GET.POST请求using System; using System.Collections.Generic; using System.Text; usin ...
- 【WCF】利用WCF实现上传下载文件服务
引言 前段时间,用WCF做了一个小项目,其中涉及到文件的上传下载.出于复习巩固的目的,今天简单梳理了一下,整理出来,下面展示如何一步步实现一个上传下载的WCF服务. 服务端 1.首先新建一个名 ...
- WebSSH画龙点睛之lrzsz上传下载文件
本篇文章没有太多的源码,主要讲一下实现思路和技术原理 当使用Xshell或者SecureCRT终端工具时,我的所有文件传输工作都是通过lrzsz来完成的,主要是因为其简单方便,不需要额外打开sftp之 ...
- WEB上传大文件
众所皆知,web上传大文件,一直是一个痛.上传文件大小限制,页面响应时间超时.这些都是web开发所必须直面的. 本文给出的解决方案是:前端实现数据流分片长传,后面接收完毕后合并文件的思路.下面贴出简易 ...
- web上传大文件(>4G)有什么解决方案?
众所皆知,web上传大文件,一直是一个痛.上传文件大小限制,页面响应时间超时.这些都是web开发所必须直面的. 本文给出的解决方案是:前端实现数据流分片长传,后面接收完毕后合并文件的思路. 实现文件夹 ...
- rz和sz上传下载文件工具lrzsz
######################### rz和sz上传下载文件工具lrzsz ####################################################### ...
- linux上很方便的上传下载文件工具rz和sz
linux上很方便的上传下载文件工具rz和sz(本文适合linux入门的朋友) ##########################################################&l ...
随机推荐
- rsyslog服务日志报错分析1
客户问题: 最近对服务器进行日志检查时,发现部分主机的rsyslog服务状态有报错,报错详情如下 排查过程: 1.从报错截图来看,报错主要发生在文件'/usr/lib64/rsyslog/omazur ...
- AtCoder整理(持续更新中……)
做了那么久的atcoder觉得自己的题解发的很乱 给有想和我一起交流atcoder题目(或者指出我做法的很菜)(或者指责我为什么整场比赛只会抄题解)的同学一个索引的机会??? 于是写了个爬虫爬了下 A ...
- python基础学习记录......
1.IDEA写python 打开IDEA,File--->settings---->Plugins 输入python 安装 重启IDEA 2.新建Project 选择P ...
- 【转载】spring mvc 后端获得前端传递过来的参数的方法
1.通过HttpServletRequest 获得 HttpServletRequest.getParameter(参数名),可以获得form表单中传递的参数,或ajax或url中传递过来的参数,如果 ...
- 一个好隐蔽的C/C++代码bug
来自:微博@ruanyf, 一本书上说,下面的 C 语言代码可能会产生无限循环.看了半天,才意识到 Bug 在哪里. 完美解答: 数组下标越界.数组a总共有10个值,a[0]~a[9].for循环里面 ...
- python中浅拷贝和深拷贝分析
首先,我们知道Python3中,有6个标准的数据类型,他们又分为可以变和不可变.不可变:Number(数字).String(字符串).Tuple(元组).可以变:List(列表).Dictionary ...
- cliff
let me tell you,buddy. there's a faster gun. cming over yonder,when tomorrow comes.
- 记录学习Python的第一天
这是我的第一篇博客,也是我学Python的第一天. 写这篇博客主要目的是为了记下我学习Python的过程以及所学到的知识点.我所学的是Python3版本,我所学的内容有如下几点: 1.python3中 ...
- flask使用tablib导出excel数据表
在网页中常常有导出数据的需求,尤其是一下管理类平台.在flask中要导出excel数据表,通常可以使用xlwt库,创建文件并逐行写入数据,但是使用起来总是感觉很麻烦.tablib库相对操作更加方便. ...
- 修改feign解析器替换json
@Bean public Logger.Level getFeignLoggerLevel() { return Logger.Level.FULL ; } @Bean public Response ...