背景:如果无法直接访问保存图片的服务器,我们可以先制作一个aspx页面用来接受服务器发送过来的图片,然后html页面请求aspx页面。对图片服务器起一定的缓冲保护作用,预防对黑客攻击造成危害。

注意:不可以是直接设置aspx页面中的图片控件的imageurl,此方法已实验不成功。

1. showpic.aspx页面

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="showpic.aspx.cs" Inherits="NewProject.showpic" %>

2. showpic.aspx.cs 后台代码

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.UI;
  6. using System.IO;
  7. using System.Web.UI.WebControls;
  8. using System.Net;
  9.  
  10. namespace NewProject
  11. {
  12. public partial class showpic : System.Web.UI.Page
  13. {
  14. protected void Page_Load(object sender, EventArgs e)
  15. {
  16. //Image.ImageUrl = "http://local/v1/tfs/T1.ysssTByYT1RCvBVdK";
  17. string url = "http://local/v1/tfs/T1.ysefsefsefvBVdK";
  18. string contentType="application/x-www-form-urlencoded";
  19. Stream reqStream = SendGetRequestForStream(url,contentType);
  20. MemoryStream ms = new MemoryStream();
  21. reqStream.CopyTo(ms);
  22. //Response.Write(ms.ToArray());//这种方法错误
  23. Response.BinaryWrite(ms.ToArray());//可以
  24. //HttpContext.Current.Response.BinaryWrite(ms.ToArray());//可以
  25. }
  26.  
  27. private Stream SendGetRequest1(string url)
  28. {
  29. string content;
  30. HttpRequest request;// Enables ASP.NET to read the HTTP values sent by a client during a Web request.
  31. WebRequest webrequest;// Makes a request to a Uniform Resource Identifier (URI). This is an abstract
  32. HttpWebRequest httpWebRequest;// Provides an HTTP-specific implementation of the System.Net.WebRequest class.
  33. HttpWebResponse httpWebResponse;
  34. //string url = "fsefsf";
  35. httpWebRequest = WebRequest.Create(url) as HttpWebRequest;
  36. httpWebRequest.AllowAutoRedirect = true;
  37. httpWebRequest.Method = "GET";
  38. httpWebRequest.ContentType = "application/x-www-form-urlencoded";
  39.  
  40. //httpwebrequest.ContentType = "application/json";
  41. //httpwebrequest.ContentType = "application/xml";
  42. //httpwebrequest.Headers.Add("url",url);
  43.  
  44. httpWebResponse = httpWebRequest.GetResponse() as HttpWebResponse;
  45. Stream resStream = httpWebResponse.GetResponseStream();
  46. using (StreamReader sr = new StreamReader(resStream))
  47. {
  48. content = sr.ReadToEnd();
  49. }
  50. return resStream;
  51. }
  52. }
  53. }

3. pic.html 页面

  1. <!DOCTYPE html>
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title></title>
  5. </head>
  6. <body>
  7. <div>
  8. <img src="showpic.aspx" alt="Alternate Text" />
  9.  
  10. </div>
  11. </body>
  12. </html>

aspx页面图片用作html中img的url的更多相关文章

  1. 一个ASPX页面的生命周期?

    大家都知道客户端请求一个ASPX页面,通过iis中接收,会被的interinfo.exe进程截取,判断其扩展名,再把请求转交给ASPNET_ISAPI.DLL,通过isapi扩展进入相应的管道处理,转 ...

  2. aspx页面 按钮不响应回车键

    aspx页面在IE浏览器中,页面上的按钮默认都响应回车键,但有的时候我们的文本框可能需要响应回车键,这时我们就不想让按钮再响应回车键,这时我们只需要设置按钮的属性即可. 按钮分为两种,一种是<b ...

  3. 在aspx页面中使用三元表达式

    第一种使用方法:判断GridView绑定的数据是否为空 用GridView或其他控件绑定数据的时候,有时候需要判断从数据库中获取的值是否是空值,然后显示相应的内容,如果在后置代码中写的话只有是在Row ...

  4. WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据

    WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据 WebForm1.aspx 页面 (原生AJAX请求,写法一) <%@ Page Langu ...

  5. HTML控件ID和NAME属性及在CS页面获得.ASPX页面中HTML控件的值

    <转载>来自网络 一.ID是在客户端脚本里用!NAME是用于获取提交表单的某表单域信息,在form里面,如果不指定Name的话,就不会发送到服务器端,所以有name属性的控件,必须指定na ...

  6. 同一Session中的aspx页面的并发限制

    项目中客户端采用WebBrowser展示aspx页面,用户有可能打开带多个带WebBrowser的winform窗体.此时,如果其中一个的WebBrowser的aspx页面响应较长的话,其他窗体中的W ...

  7. HTML控件ID和NAME属性的区别,以及如何在asp.net页面的.CS文件中获得.ASPX页面中HTML控件的值

    在html中:name指的是用户名称,ID指的是用户注册是系统自动分配给用户的一个序列号. name是用来提交数据的,提供给表单用,可以重复: id则针对文档操作时候用,不能重复.如:document ...

  8. ASP.NET aspx页面中 写C#脚本; ASP.NET 指令(<%@%>);

    1 <h2>Welcome</h2> <ul> <% for (int i = 0; i <= Convert.ToInt32(ViewData[&qu ...

  9. WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据(转)

    WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据 WebForm1.aspx 页面 (原生AJAX请求,写法一) <%@ Page Langu ...

随机推荐

  1. inout

    在函数声明时就用inout代替var  这样以后可以在函数内部修改外面的值 类似于C语言的传入指针 func change (inout num:Int) { num = 10 } var a = 2 ...

  2. C++中颜色的设置

    1.改变整个控制台的颜色用 system("color 0A"); 其中color后面的0是背景色代号,A是前景色代号.各颜色代码如下: 0=黑色 1=蓝色 2=绿色 3=湖蓝色  ...

  3. spring中配置jdbc数据源

    1.加入jdbc驱动器包,mysql-connector-java.jar 2.加入commons-dbcp.jar配置数据源 3.在classpath下新建文件jdbc.properties,配置j ...

  4. HDU 1542 线段树+扫描线+离散化

    Atlantis Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...

  5. 内工大acm校赛--整理代码

    题目:小明搜到一行无缩进无换行代码,请帮小明整理代码.无for语句和case语句,而且只有一个主函数.你只要控制注意“:”“{”“}”这三个符号带来的缩进和换行效果就行. Input: 输入只有一行, ...

  6. Android事件处理--读书笔记

    2013-12-28 17:57:17 1. Android提供了两种方式的事件处理:基于回调和基于监听的事件处理: 1.1 对基于监听的事件处理而言,主要做法是为Android界面组件绑定特定的事件 ...

  7. numpy 总结

    1.array.sum() from numpy import * import operator group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]) ...

  8. Hibernate中的一对一映射

    1.需求 用户和身份证是一一对应的关系. 有两种对应方式: 用户id作为身份证表的外键,身份证号作为主键: 用户id作为身份证表的主键: 2.实体Bean设计 User: public class U ...

  9. 【C语言学习】-02 分支结构

    本文目录: 一.BOOL布尔类型 二.关系运算符 三.逻辑运算符 四.if语句 五.枚举类型 六.switch语句 一.BOOL布尔类型 BOOL数据类型,是一种表示非真即假的数据类型,布尔类型的变量 ...

  10. Linux面试基础题-2

    继续我们这面试系列,在这篇文章里我们给出了10个问题.这些问题或者是在以后的文章中出现的问题不一定在面试中会被问到.然而通过这些文章我们呈现出的是一个交互的学习平台,这必将会对你有很大的帮助. 自本系 ...