当前位置:编程学习 > C#/ASP.NET >>

发帖请问会的人,别来什么copy或地址,找的到就不问了,不会的别来充数

WebClient wc=new WebClient(); 
wc.DownloadFile("http://www.a.com/logo.gif","c:\\a.gif");
想用c#语言
这个方法不能从服务器端下载图片,我自己建了个web站点,自己是服务器端,在客户端访问下载图片时,那个路径是服务器端的相对路径,而客户端不能下载,怎么改这个路径,才能在客户端下载到指定图片。 --------------------编程问答-------------------- 这是在什么地方调用的?
如果是ASP.Net想要下载到本地,使用Javascript打开新窗口,图片的URL附进去就行;如果想用C#,那就图片的url转发回来。
如果是Silverlight ,需要使用SaveFileDialog通过用户操作去保存文件。

WebClient在ASP.NET里面这样使用,其实是操作服务端,因为ASP.NET是Server编译转发结果到客户端的,所以并不能将文件下载到客户端。 --------------------编程问答-------------------- 用Server.MapPath 方法得到绝对地址 --------------------编程问答-------------------- 你没说清楚问题,你说的是"c:\\a.gif"是服务器上的路径?在客户端上你可以用Path.Combine组合路径代替, --------------------编程问答-------------------- 首先,你要明白你下载的图片是相对路径。
而你下载,肯定要知道图片的绝对路径,你连路径都是错的,怎么可能给你下载呢!!

而是相对路径的图片,你要构造成绝对路径,然后进行下载
我还以为你说的是DownloadFile这个函数下载不了文件呢,自己测试了是可以下载的。


        private void button1_Click(object sender, EventArgs e)
        {
            System.Net.WebClient client = new System.Net.WebClient();
            client.DownloadFile(@"http://avatar.profile.csdn.net/9/C/E/2_chongerwing.jpg", @"E:\test\1.jpg");

            #region  创建目录
            //if (!Directory.Exists(path))
            //{
            //    Directory.CreateDirectory(path);
            //}
            #endregion
        }
--------------------编程问答-------------------- "发帖请问会的人,别来什么copy或地址,找的到就不问了,不会的别来充数"

不会问的人,别来问,你至少把异常信息贴出来吧,也不知道是下载有问题,还是下载后保存有问题。 --------------------编程问答-------------------- 现在的年轻人都太牛了.

代码基本没问题, 应该是写入权限的问题, 至少要贴个错误信息吧.唉. --------------------编程问答-------------------- 好吧 我改行围观了 --------------------编程问答-------------------- 我就是想用c#编辑个最简单网站,让他能在客户端输入文件名,能从服务器端指定的文件夹下下载到那个指定的图片文件。WebClient wc=new WebClient();  但是这个我在用WebClient从服务器下载文件到客户端的时候,结果文件被保存到服务器中.
WebClient wc=new WebClient();  
wc.DownloadFile("http://www.a.com/logo.gif","c:\\a.gif"); 
结果该文件被保存到服务器的c:\下。 
请问如何处理? 
--------------------编程问答-------------------- 不是我不贴错误,只是没错误啊,你从客户端下载东西,东西只是保存在了服务器端。。。。。而没有在客户端下载下来。。。。 --------------------编程问答-------------------- 我的qq号 175妖99五80 俺一点都不牛,就是问问,如果会的人,+我Q,可以不。。。俺虚心请教 --------------------编程问答--------------------
你的代码写错了.

比如你要下载: http://www.a.com/logo.gif

直接在浏览器地址栏输入: http://www.a.com/logo.gif

之后在图片上点右键-保存. 收工, 

--------------------编程问答--------------------
引用 8 楼 gyl11109051 的回复:
我就是想用c#编辑个最简单网站,让他能在客户端输入文件名,能从服务器端指定的文件夹下下载到那个指定的图片文件。WebClient wc=new WebClient(); 但是这个我在用WebClient从服务器下载文件到客户端的时候,结果文件被保存到服务器中.
WebClient wc=new WebClient();  
wc.DownloadFile("http://www.a.com/l……



我猜哦,你这个
WebClient wc=new WebClient();   
wc.DownloadFile("http://www.a.com/logo.gif","c:\\a.gif");  
程序是不是也再网站后台里写的,如果是的话,那么当然下载到服务器的C盘下面去了。

如果你要用这种方式的话,自己写一个CS程序使用webclient BS的后台程序都是server端执行的,当然会再C盘了。 --------------------编程问答-------------------- using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
using System.Drawing.Text;
using System.Diagnostics;
using System.Data;
using System.Configuration;
using System.Web.Security;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Collections;
using System.Xml;
using System.Text;
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }




protected void Button1_Click(object sender, EventArgs e)
{

    string filePath = @"d:\word16.png";

       string str = "http://10.10.80.108/test/word16.png"; 
      // string uristring ="http://10.10.80.108/test/ '"+ TextBox2.Text + "'";
        Uri rl = new Uri(str);
        try
        {
            using (WebClient wc = new WebClient())
            {
                wc.DownloadFile(rl, filePath);
            }
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
        } 
         
}
     

}
--------------------编程问答-------------------- 12楼 就你明白了,那我想请教下,我应该怎么写,才可以下载到客户端呢?谢谢了 --------------------编程问答-------------------- 呵呵,你干嘛不在服务器端写 msgbox("我弹框了"),看看这框弹给谁了

请分清楚什么是在服务器运行的,什么是在客户端运行的 --------------------编程问答-------------------- 我的代码完全没错误,只是这些代码是在服务器后台,所以在客户端下载的时候,都保存在了服务器端的路径里,对于我描述不清,对不起大家了 --------------------编程问答-------------------- 你想干啥坏事,在用户不知情的情况下偷偷把程序放到人家机器上? --------------------编程问答-------------------- 。。。。。。俺没那么坏,只是项目里要实现把图片最好不经过选择路径,直接保存在默认的文件夹下,权限都有了,也只是给特定用户使用,所以安全性可以不用考虑 --------------------编程问答-------------------- --------------------编程问答-------------------- 这个受浏览器安全性限制,基本不可行,除非你将浏览器安全性调到最低,或者使用activeX
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,