Response.WriteFile只能输出本地文件
输出Internet上的文件用WebClient
WebClient wc = new WebClient();
byte[] filedata = wc..DownloadData("文件Url");
...
Response.BinaryWrite(filedata);

解决方案 »

  1.   

    public void WriteFile(string fileUrl)
    {
        WebClient wc = new WebClient();
        try
        {
            byte[] FileData = wc.DownloadData(fileUrl);
            Response.ClearHeaders();
            Response.ClearContent();
            Response.BinaryWrite(FileData);
            Response.End();
        }
        catch( WebException exp )
        {
           throw new WebException( exp.ToString() );
        }
    }
    示例调用:
    WriteFile("http://expert.csdn.net/Expert/topic/2605/2605430.xm");
      

  2.   

    我這樣做了,可是還是不行,當點擊按鈕后,在ie中就可看到改圖片,根本就下不來,幫忙看看吧.
    <%@ Page Language="VB" Debug="true"%>
    <%@ Import NameSpace="System.IO" %>
    <%@ Import NameSpace="System.Net" %>
    <script runat="server">
    Sub Button2_Click(s As Object,e As EventArgs)
        DownloadFile_FormWeb("http://image2.sina.com.cn/home/temp/1_30-13-115_200312249442.GIF",true)
    End SubSub DownloadFile_FormWeb(ByVal fileUrl As String, ByVal forceDownload As Boolean)
            dim wc as WebClient = new WebClient()
            dim FileData as byte()  = wc.DownloadData(fileUrl)
            Response.ClearHeaders()
            Response.ClearContent()
            Response.BinaryWrite(FileData)
            Response.End()
    End Sub
    </script><form runat="server">
    <asp:Button id="button2" onclick="Button2_Click" runat="server" Text="Sina Logo DownLoad"/>
    </form>
      

  3.   

    那段代码是在游览器中显示,不是下载加上你的这句
    Response.ClearContent()
    Response.AppendHeader("content-disposition", _
          "attachment; filename=" + name)
    ....
      

  4.   

    ljupin(无情刀.NET) :你可不可以給我完整的代碼呀.你上面的name是用什么得到的呀?
      

  5.   

    name就是你的文件名称啊,随便
      

  6.   

    根本就不行.下載的就不是一個圖片.如:
    <%@ Page Language="VB" Debug="true"%>
    <%@ Import NameSpace="System.IO" %>
    <%@ Import NameSpace="System.Net" %>
    <script runat="server">
    Sub Button2_Click(s As Object,e As EventArgs)
        DownloadFile_FormWeb("http://image2.sina.com.cn/home/temp/1_30-13-115_200312249442.GIF",true)
    End SubSub DownloadFile_FormWeb(ByVal fileUrl As String, ByVal forceDownload As Boolean)
            dim name as string = "http://image2.sina.com.cn/home/temp/1_30-13-115_200312249442.GIF"
            dim wc as WebClient = new WebClient()
            dim FileData as byte()  = wc.DownloadData(fileUrl)
            Response.ClearHeaders()
            Response.ClearContent()
            Response.BinaryWrite(FileData)
    Response.ClearContent()
            Response.AppendHeader("content-disposition", "attachment; filename=" + name)
            Response.End()
    End Sub
    </script><form runat="server">
    <asp:Button id="button2" onclick="Button2_Click" runat="server" Text="Sina Logo DownLoad"/>
    </form>
      

  7.   

    dim name as string = "http://image2.sina.com.cn/home/temp/1_30-13-115_200312249442.GIF"
    dim myWebClient as WebClient = new WebClient()
    '保证你的相关文件夹的写权限:(如下示例:e:\download文件夹必须有写权限)
    myWebClient.DownloadFile(name,Server.MapPath("e:\download\a.gif")); 
      

  8.   

    先用WebClient类下载文件到你的服务器上,然后以文件流的方式发送给客户端。
      

  9.   

    直接输出流不行?我没测试过
    那就那上面几个说的,先用DownloadFile方法保存到服务器上,然后用FileStream读入的流中再输出DownloadData方法不行?晕,我测试看看
      

  10.   

    老兄,没问题啊,即使用VB写也没问题<%@ Import Namespace="System" %>
    <%@ Import Namespace="System.Net" %>
    <script language="VB" runat="server">
    Sub Page_Load(src as object, e as EventArgs)
         WriteFile("http://www.csdn.net/images/homeimage/csdn.gif")
    End Sub
    Sub WriteFile(fileUrl as string)
        dim wc as WebClient = new WebClient()
        dim FileData as byte()  = wc.DownloadData(fileUrl)
        Response.ClearHeaders()
        Response.ClearContent()
        Response.AppendHeader("content-disposition", "attachment; filename=" + "csdn.gif")
        Response.BinaryWrite(FileData)
        Response.End()
    End Sub
    </script>