在建立好一个WebService后会有一个自带的

 [WebMethod]//在待会写的所有方法中都要写这个,便于调试
public string HelloWorld()
{
return "Hello World";
}

现在可以试一下录入记录

 [WebMethod]
public UserInfo Login(string userName, string pwd)
{
if (userName == "admin" && pwd == "")
{
return new UserInfo() { UserName="admin",Pwd="",Age=,Remark="我很帅" };
}
else
{
return null;
}
}

在MVC项目中的控制器中调用

//第一步:添加服务引用
//实例化服务引用:服务对象以SoapClient
MyWebServiceSoapClient client = new MyWebServiceSoapClient();
public ActionResult Index()
{
string result = client.HelloWorld();
Response.Write(result);
return View();
}         [WebMethod]
        public UserInfo Login(string userName, string pwd)
        {
            if (userName == "admin" && pwd == "123")
            {
                return new UserInfo() { UserName="admin",Pwd="",Age=50,Remark="我很帅" };
            }
            else
            {
                return null;
            }
        }

然后可以写简单的文件上传下载

public class MyWebService : System.Web.Services.WebService
{ [WebMethod]
public string HelloWorld()
{
return "Hello World";
}
/// <summary>
/// 上传文件
/// </summary>
/// <param name="bytes"></param>
/// <param name="fileName"></param>
/// <returns></returns>
[WebMethod]
public bool FileUpload(byte[] bytes,string fileName)
{
try
{
//实例化内存对象MemoryStream,将byte数组装入内存对象
MemoryStream memory = new MemoryStream(bytes);
//文件保存路径
string filePath = Server.MapPath("~/Files/" + fileName);
//实例化文件对象
FileStream fStream = new FileStream(filePath, FileMode.OpenOrCreate);
//将内存对象写入文件对象
memory.WriteTo(fStream);
//释放对象
memory.Close();
memory.Dispose();
fStream.Close();
fStream.Dispose();
return true;
}
catch (Exception ex)
{
return false;
}
} [WebMethod]
public byte[] FileDownLoad(string FileName)
{
//加载路径
string filePath = Server.MapPath("~/Files/" + FileName);
//实例化文件对象,并读取指定的文件
FileStream fs = File.OpenRead(filePath);
int b1;
//实例化内存对象
System.IO.MemoryStream tempStream = new System.IO.MemoryStream();
//循环读取文件并将文件转换为byte[]
while ((b1 = fs.ReadByte()) != -)
{
tempStream.WriteByte(((byte)b1));
}
return tempStream.ToArray();
} [WebMethod]
public List<FileManager> GetFileList()
{
//加载路径
string filePath = Server.MapPath("~/Files/");
//实例化DirectoryInfo并加载指定路径
DirectoryInfo directory = new DirectoryInfo(filePath);
List<FileManager> result = new List<FileManager>(); //便利指定路径下的所有文件夹
foreach (DirectoryInfo item in directory.GetDirectories())
{
FileManager temp = new FileManager();
temp.FileName = item.Name;
temp.FilePath = item.FullName;
temp.FileType = ;
result.Add(temp);
}
//遍历指定路径下的所有文件
foreach (FileInfo item in directory.GetFiles())
{
FileManager temp2 = new FileManager();
temp2.FileName = item.Name;
temp2.FilePath = item.FullName;
temp2.FileType = ;
result.Add(temp2);
}
return result;
}
}

在在MVC项目中的控制器中调用

public ActionResult FileUpload()
{
return View();
} [HttpPost]
public ActionResult FileUpload(HttpPostedFileBase file1)
{
Stream fileStream = file1.InputStream;
byte[] bytes = new byte[fileStream.Length];
fileStream.Read(bytes, , bytes.Length);
// 设置当前流的位置为流的开始
fileStream.Seek(, SeekOrigin.Begin);
bool result = client.FileUpload(bytes, file1.FileName);
if (result)
{
Response.Write("文件上传成功!");
}
else
{
Response.Write("文件上传失败!");
}
return View();
} public ActionResult FileDownLoad()
{
List<FileManager> result = client.GetFileList().ToList();
StringBuilder sb = new StringBuilder();
sb.Append("<ul>");
foreach (var item in result)
{
sb.Append(string.Format("<li><a href='/Home/FileDownLoad/{0}'>{1}</a></li>", item.FilePath, item.FileName)); }
sb.Append("</ul>");
ViewBag.FileList = sb.ToString();
return View();
} [HttpPost]
public ActionResult FileDownLoad(FormCollection coll)
{
string[] s = { "", "" };
foreach (var item in s)
{
byte[] result = client.FileDownLoad(item);
//输出流的编码
Response.Charset = "UTF-8";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
//输出类型为流文件
Response.ContentType = "application/octet-stream"; Response.AddHeader("Content-Disposition", "attachment; filename=" + "新建文本文档.txt");
Response.BinaryWrite(result);
Response.Flush();
Response.End(); }
return new EmptyResult();
}

写得不好,可能有错请谅解,有错请指出

.NET企业级应用WebService上传下载文件的更多相关文章

  1. java web service 上传下载文件

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

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

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

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

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

  4. shell通过ftp实现上传/下载文件

    直接代码,shell文件名为testFtptool.sh: #!/bin/bash ########################################################## ...

  5. SFTP远程连接服务器上传下载文件-qt4.8.0-vs2010编译器-项目实例

    本项目仅测试远程连接服务器,支持上传,下载文件,更多功能开发请看API自行开发. 环境:win7系统,Qt4.8.0版本,vs2010编译器 qt4.8.0-vs2010编译器项目实例下载地址:CSD ...

  6. linux下常用FTP命令 上传下载文件【转】

    1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码,分别输入用户名和相应密码 ...

  7. Delphi调用JAVA的WebService上传XML文件(XE10.2+WIN764)

    相关资料:1.http://blog.csdn.net/luojianfeng/article/details/512198902.http://blog.csdn.net/avsuper/artic ...

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

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

  9. HttpClient上传下载文件

    HttpClient上传下载文件 java HttpClient Maven依赖 <dependency> <groupId>org.apache.httpcomponents ...

随机推荐

  1. 201521123055《Java程序设计》第1周学习总结

     1. 本章学习总结 (1)JAVA环境配置(JDK,JVM) (2)编写简易程序熟练代码结构  2. 书面作业 1.为什么java程序可以跨平台运行?执行java程序的步骤是什么? JAVA程序需要 ...

  2. 学号:201521123116 《java程序设计》第一周学习总结

    #1. 本章学习总结了解了班级的纪律和期末成绩组成.本周重点学习了java语言的特点具有简单性和结构中立.明白了jdk是java开发人员使用的一种工具,以及编写一个java程序的所需步骤,懂得了jdk ...

  3. Java课程设计——学生成绩管理系统(201521123003 董美凤)

    Java课程设计--学生成绩管理系统(201521123003 董美凤) 1.团队课程设计博客链接 学生成绩管理系统博客链接 2.个人负责模块或任务说明 信息修改 密码修改 部分界面设计 3.自己的代 ...

  4. JDBC第一篇--【介绍JDBC、使用JDBC连接数据库、简单的工具类】

    1.什么是JDBC JDBC全称为:Java Data Base Connectivity,它是可以执行SQL语句的Java API 2.为什么我们要用JDBC 市面上有非常多的数据库,本来我们是需要 ...

  5. Spring03-jdbc

    1,Spring集成Jdbc,需要导入spring包和数据库驱动包,这里我们使用的是mysql驱动包 2,选择一个数据源(DBCP,C3P0),这里我们使用DBCP,需要导入DBCP驱动包 3,创建j ...

  6. python 实现注册程序

    本文介绍用python实现一个模拟注册的程序,详细需求如下: # 写一个注册的程序,输入username,密码,密码确认,输入的账号和密码不能为空,两次输入密码必须一致,用户名不能重复,错误次数4次# ...

  7. MongoDB分片原理篇

    MongoDB分片 为什么需要Sharded cluster? MongoDB目前3大核心优势:『灵活模式』+ 『高可用性』 + 『可扩展性』,通过json文档来实现灵活模式,通过复制集来保证高可用, ...

  8. [python学习笔记] pyqt5下载与安装

    下载 命令安装 pip3 install PyQt5 但是我这里老安装失败 失败问题 host='pypi.python.org', port=443): Read timed out 方案1:加大命 ...

  9. 在 docker 容器中捕获信号

    我们可能都使用过 docker stop 命令来停止正在运行的容器,有时可能会使用 docker kill 命令强行关闭容器或者把某个信号传递给容器中的进程.这些操作的本质都是通过从主机向容器发送信号 ...

  10. Java源码学习:HashMap实现原理

    AbstractMap HashMap继承制AbstractMap,很多通用的方法,比如size().isEmpty(),都已经在这里实现了.来看一个比较简单的方法,get方法: public V g ...