ManageFile.MyFile oImage=new TongBuTransfer.ManageFile.MyFile();
///得到二进制文件字节数组;
byte[] image = oImage.GetImage("");
///转换为支持存储区为内存的流
System.IO.MemoryStream memStream = new System.IO.MemoryStream(image);
///定义并实例化Bitmap对象
//Bitmap bm = new Bitmap(memStream);
FileStream myfile = new FileStream(Server.MapPath("."),FileMode.Create);
memStream.WriteTo(myfile);
///根据不同的条件进行输出或者下载;
Response.Clear();
///如果请求字符串指定下载,就下载该文件;
///否则,就显示在浏览器中。
Response.Buffer = true;
Response.ContentType = "application/octet-stream";
///这里下载输出的文件名字 ok.jpg 为例子,你实际中可以根据情况动态决定。
Response.AddHeader("Content-Disposition","attachment;filename="+filename);
Response.BinaryWrite(image);
Response.End();
webservice(部分代码):
public class MyFile: System.Web.Services.WebService
{ public MyFile()
{
//CODEGEN: 该调用是 ASP.NET Web 服务设计器所必需的
InitializeComponent();
}
#region 组件设计器生成的代码
//Web 服务设计器所必需的
private IContainer components = null;
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
} /// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if(disposing && components != null)
{
components.Dispose();
}
base.Dispose(disposing);
}
#endregion // WEB 服务示例
// HelloWorld() 示例服务返回字符串 Hello World
// 若要生成,请取消注释下列行,然后保存并生成项目
// 若要测试此 Web 服务,请按 F5 键 // [WebMethod]
// public string HelloWorld()
// {
// return "Hello World";
// }
/// <summary>
/// Web 服务提供的方法,返回给定文件的字节数组。
/// </summary>
[WebMethod(Description="Web 服务提供的方法,返回给定文件的字节数组")]
public byte[] GetImage(string requestFileName)
{
///得到服务器端的一个图片
///如果你自己测试,注意修改下面的实际物理路径
if(requestFileName == null || requestFileName == "")
return getBinaryFile(Server.MapPath("/tbfile"+"\\")+"FileError.jpg");
else
return getBinaryFile(Server.MapPath("/tbfile"+"\\") + requestFileName);
} /// <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);
}
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";
}
///得到二进制文件字节数组;
byte[] image = oImage.GetImage("");
///转换为支持存储区为内存的流
System.IO.MemoryStream memStream = new System.IO.MemoryStream(image);
///定义并实例化Bitmap对象
//Bitmap bm = new Bitmap(memStream);
FileStream myfile = new FileStream(Server.MapPath("."),FileMode.Create);
memStream.WriteTo(myfile);
///根据不同的条件进行输出或者下载;
Response.Clear();
///如果请求字符串指定下载,就下载该文件;
///否则,就显示在浏览器中。
Response.Buffer = true;
Response.ContentType = "application/octet-stream";
///这里下载输出的文件名字 ok.jpg 为例子,你实际中可以根据情况动态决定。
Response.AddHeader("Content-Disposition","attachment;filename="+filename);
Response.BinaryWrite(image);
Response.End();
webservice(部分代码):
public class MyFile: System.Web.Services.WebService
{ public MyFile()
{
//CODEGEN: 该调用是 ASP.NET Web 服务设计器所必需的
InitializeComponent();
}
#region 组件设计器生成的代码
//Web 服务设计器所必需的
private IContainer components = null;
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
} /// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if(disposing && components != null)
{
components.Dispose();
}
base.Dispose(disposing);
}
#endregion // WEB 服务示例
// HelloWorld() 示例服务返回字符串 Hello World
// 若要生成,请取消注释下列行,然后保存并生成项目
// 若要测试此 Web 服务,请按 F5 键 // [WebMethod]
// public string HelloWorld()
// {
// return "Hello World";
// }
/// <summary>
/// Web 服务提供的方法,返回给定文件的字节数组。
/// </summary>
[WebMethod(Description="Web 服务提供的方法,返回给定文件的字节数组")]
public byte[] GetImage(string requestFileName)
{
///得到服务器端的一个图片
///如果你自己测试,注意修改下面的实际物理路径
if(requestFileName == null || requestFileName == "")
return getBinaryFile(Server.MapPath("/tbfile"+"\\")+"FileError.jpg");
else
return getBinaryFile(Server.MapPath("/tbfile"+"\\") + requestFileName);
} /// <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);
}
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";
}
解决方案 »
- cookie在浏览器关闭的时候不自动消失?
- ~~~~~~~~~~~~市场需求调查问卷设计~~~~~~
- 怎么做到网站全静态化最好是有个小实例
- 请问一个替换正则表达式
- !!局域网直播的问题??
- 如何实现在文本框输入数据时能从数据库中搜索出相关的数据并列表显示在文本框下?
- 小山 联动菜单.cs后台取值问题
- [急][求]如何通过http获取一个xml文档,并根据此文档修改本地相同结构的xml文档!
- 为什么aspx文件放虚拟主机的子文件夹下出错,火速超急,谢谢,虚拟主机提供商www.dns.com.cn标准型的
- Ajaxpro超时的问题
- 在atlas中,button点击时为什么不会触发body的onbeforeunload,而linkbutton却会触发?不信,你可以建一个最简单的页面试一下,不用输任何代码
- 急急急急急急急急急(最后80分了)-用下面这段代码来配合webservice下载文件?急急急急急急
see