簡體   English   中英

在 Laravel/PHP 中從外部 url 下載文件

[英]Download files from external url in Laravel/PHP

我想使用外部 url 下載文件,點擊我正在使用的下面的代碼,現在它工作正常錯誤,但文件沒有在任何地方下載。

public function checkCount(Request $request)
    {
        $userid = Session::get('UserId');
        $count = DB::table('download_details')
        ->where('type','=',$request->type)
        ->where('user_id','=',$userid)
        ->get()
        // echo "<pre>"; print_r($count); die;
        ->count();
        if($count >= 2)
        {
            echo 0;
        }
        else
        {
          $data = array(
          'corporate_id' => $request->corporateid,
          'user_id' => Session::get('UserId'),
          'ip_address' => \Request::ip(),
          'mac_address' => '',
          'type' => $request->type,
          'count' => '',
          'date' => date('Y-m-d'),
          'status' => 1
         );
         $insert = DB::table('download_details')->insert($data);
         $name = basename($request->url);
         $path = $request->url;
         // echo $path; die;
         $tempImage = tempnam(sys_get_temp_dir(), $path);
         copy($request->url, $tempImage);
         
         return response()->download($tempImage, $name);
        

        }
    }

我的 Ajax 代碼

function saveData(type,url)
    {
         var corporateid = $('#corporateid').val();
         // alert(type);
         $.ajax({
         type:'POST',
         url:'/check-count',
         data:{'_token':'{{csrf_token()}}',corporateid:corporateid,type:type,url:url},
         success:function(response){
          // alert(response);
          if(response == 0)
          {
            $('#download_error_message').show();
            $('#download_error_message').html("Download Limit Exceeded");
            $('#download_error_message').fadeOut(4000);
          }
          else
          {
            alert("Success");
           
          }
         }
        });
    }

其他部分顯示我正在下載文件。 沒有錯誤是 ajax 請求,但文件根本沒有下載。

文件沒有下載。請幫忙

希望它會奏效。

public function checkCount(Request $request)
    {
        $userid = Session::get('UserId');
        $count = DB::table('download_details')
        ->where('type','=',$request->type)
        ->where('user_id','=',$userid)
        ->get()
        // echo "<pre>"; print_r($count); die;
        ->count();
        if($count >= 2)
        {
            echo 0;
        }
        else
        {
          $data = array(
          'corporate_id' => $request->corporateid,
          'user_id' => Session::get('UserId'),
          'ip_address' => \Request::ip(),
          'mac_address' => '',
          'type' => $request->type,
          'count' => '',
          'date' => date('Y-m-d'),
          'status' => 1
         );
         $insert = DB::table('download_details')->insert($data);
         $name = basename($request->url);
         $path = $request->url;
         // echo $path; die;
         $tempImage = tempnam(sys_get_temp_dir(), $path);
         copy($request->url, $tempImage);
         
         $mimeType = mime_content_type($tempImage);
         $headers = ["Content-Type: {$mimeType}"];
    
         return Response::download($tempImage, $name, $headers);
        

        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM