下載資源服務器資源例如下載網絡圖片

最近有個需求,下載資源服務器的圖片,找了各種辦法去下載,都未能實現,最後不得已,寫下了如下方法,先用服務器去獲取資源,將圖片保存再服務器上,再去下載
前端代碼

	onClick:function(){
		    if(confirm( '是否下載當前圖片! ')==true){
		     var reg = /(?<=(src="))[^"]*?(?=")/ig;
		     var str =$('.swiper-slide-active').children('span').children('img').attr('src');
              $.ajax({url:"/reward/apply/download?filename="+str,type:'get',success:function(res){
                var url = "/img/"+res;
                var a = document.createElement('a');          // 創建一個a節點插入的document
                var event = new MouseEvent('click')           // 模擬鼠標click點擊事件
                a.download = res                  // 設置a節點的download屬性值
                a.href = url;                                 // 將圖片的src賦值給a節點的href
                a.dispatchEvent(event);                        // 觸發鼠標點擊事件
              }});
		    };
		   
		}

後端php

	public function download(){
       
    $url = 'http:'.$_GET['filename'];

$state = @file_get_contents($url,0,null,0,1);//獲取網絡資源的字符內容
 
    if($state){        
 
    $filename = rand(1000,9999).'.jpg';//文件名稱與路徑
 
        ob_start();//打開輸出
 
        readfile($url);//輸出圖片文件
 
        $img = ob_get_contents();//得到瀏覽器輸出
 
        ob_end_clean();//清除輸出並關閉
 
        $size = strlen($img);//得到圖片大小
 
        $fp2 = @fopen('./img/'.$filename, "a");        
 
        fwrite($fp2, $img);//向當前目錄寫入圖片文件,並重新命名
 
        fclose($fp2);      
        echo $filename ;
        exit;
          
     }
 
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章