0
我view.blade.php這樣
....
<meta name="_token" content="{!! csrf_token() !!}" />
....
<script>
jQuery(document).ready(function ($) {
$.ajaxSetup({
headers: {'X-CSRF-Token': $('meta[name="_token"]').attr('content')}
});
$.post('/download_file', {file_name: "abc"}, function (data) {
console.log(data);
});
});
</script>
在routes.php文件我已經設置的路線
Route::post('/download_file' , '[email protected]_file');
在DownloadController.php我寫的代碼創建和下載文件中像這樣
<?php
namespace App\Http\Controllers;
use Response;
use File;
use Illuminate\Http\Request;
class DownloadController extends Controller {
public function load_file(Request $request){
if($request->file_name === "abc"){
File::put("files/abc.txt", "This is content in txt file");
$file_abc = public_path() . "/files/abc.txt";
return Response::download($file_abc);
}
}
}
文件的abc.txt是創建服務器,但之後$。員額調用瀏覽器不下載它。在console.log(數據)我看到文件的內容。感謝任何幫助。
我使用jQuery,因爲我想用戶開放view.blade.php後自動創建和下載文件。我改變這樣的代碼:$ headers = array('Content-Type:text/plain');返回響應() - >下載($ file_abc,「abc.txt」,$ headers);'但它不起作用。 –
使文件下載只需HREF用戶指向LOAD_FILE功能的路線和您的下載應該開始 – rohitarora