如何在客户端点击一个链接,自动下载将另一个网站的文件下载到服务器

时间:2022-01-11 08:27:33
有一个有链接,但是没有pdf文件网站如何在客户端点击一个有链接,检查没有文档时,将别人网站的pdf文档下载到服务器,链接pdf名相同,如有文档www.x1.aspx/1.pdf链接,无文档www.x2.aspx/1.pdf链接,只有20分

12 个解决方案

#1


if(file.exist(路径)){本网站下载}else{别的网站下载}

#2


有人回答吗

#3


具体点的asp.net代码有吗

#4


第一次点击文档为空,从别人那里自动下载到服务器,以后就在自己的服务上读取,怎么做

#5


引用 4 楼 tommylong 的回复:
第一次点击文档为空,从别人那里自动下载到服务器,以后就在自己的服务上读取,怎么做


为什么不动手试试
这个问题没有任何难度,即使不会用一些方法,网上google一下就有答案了,总给你喂到嘴边不是“好人”

#6


我试了,不行
<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        string URL = "http://localhost/Pdf/a/1.pdf";

        SaveFile(URL);
    }

    private void SaveFile(string URL)
    {
   WebClient client=new WebClient();
   int n  =  URL.LastIndexOf('/');  
   string URLAddress  =  URL.Substring(0,n);  //取得网址
   string fileName  =  URL.Substring(n+1,URL.Length-n-1);  //取得文件名
   string Dir  = Server.MapPath("./");  //下载文件存放路径
   
   string Path  =  Dir+'\\'+fileName; //下载文件存放完整路径
    
   Stream stream  =  client.OpenRead(URL);  
    
   StreamReader reader  =  new  StreamReader(stream);  
   byte[] mbyte  =  new  byte[100000];  
   int allbyte  =  (int)mbyte.Length;  
   int startbyte  =  0;      
   while(allbyte>0)  //循环读取
   {  
    int  m  =  stream.Read(mbyte,startbyte,allbyte);  
    if(m==0)  
     break;  
      
    startbyte+=m;  
    allbyte-=m;  
   }  
      
   FileStream  fstr  =  new  FileStream(Path,FileMode.OpenOrCreate,FileAccess.Write);  
   fstr.Write(mbyte,0,startbyte);  //写文件
   stream.Close();  
   fstr.Close(); 

    }  

</script>
网上找的

#7


报什么错误,有写入权限没,文件大小?
可以单步调试找错误

#8


没有错误,权限读写都可以,大小80k在本机上试了,不行

#9


没有提示错误

#10


怎么可能没错误??

检查一些关键值,比如
int allbyte = (int)mbyte.Length;   
的值是多少?

#11


测试可以过,就是没见文件被下载到硬盘

#12


那个能说具体点呀

#1


if(file.exist(路径)){本网站下载}else{别的网站下载}

#2


有人回答吗

#3


具体点的asp.net代码有吗

#4


第一次点击文档为空,从别人那里自动下载到服务器,以后就在自己的服务上读取,怎么做

#5


引用 4 楼 tommylong 的回复:
第一次点击文档为空,从别人那里自动下载到服务器,以后就在自己的服务上读取,怎么做


为什么不动手试试
这个问题没有任何难度,即使不会用一些方法,网上google一下就有答案了,总给你喂到嘴边不是“好人”

#6


我试了,不行
<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        string URL = "http://localhost/Pdf/a/1.pdf";

        SaveFile(URL);
    }

    private void SaveFile(string URL)
    {
   WebClient client=new WebClient();
   int n  =  URL.LastIndexOf('/');  
   string URLAddress  =  URL.Substring(0,n);  //取得网址
   string fileName  =  URL.Substring(n+1,URL.Length-n-1);  //取得文件名
   string Dir  = Server.MapPath("./");  //下载文件存放路径
   
   string Path  =  Dir+'\\'+fileName; //下载文件存放完整路径
    
   Stream stream  =  client.OpenRead(URL);  
    
   StreamReader reader  =  new  StreamReader(stream);  
   byte[] mbyte  =  new  byte[100000];  
   int allbyte  =  (int)mbyte.Length;  
   int startbyte  =  0;      
   while(allbyte>0)  //循环读取
   {  
    int  m  =  stream.Read(mbyte,startbyte,allbyte);  
    if(m==0)  
     break;  
      
    startbyte+=m;  
    allbyte-=m;  
   }  
      
   FileStream  fstr  =  new  FileStream(Path,FileMode.OpenOrCreate,FileAccess.Write);  
   fstr.Write(mbyte,0,startbyte);  //写文件
   stream.Close();  
   fstr.Close(); 

    }  

</script>
网上找的

#7


报什么错误,有写入权限没,文件大小?
可以单步调试找错误

#8


没有错误,权限读写都可以,大小80k在本机上试了,不行

#9


没有提示错误

#10


怎么可能没错误??

检查一些关键值,比如
int allbyte = (int)mbyte.Length;   
的值是多少?

#11


测试可以过,就是没见文件被下载到硬盘

#12


那个能说具体点呀