2013-09-05 48 views
8

我需要生成PDF文檔,並通過電子郵件發送它們,並通過鏈接訪問它們。 通過電子郵件發送是好的,但我不知道如何創建鏈接。Laravel路由:如何創建指向PDF文件的鏈接

由於我使用Laravel 4,所有鏈接都經歷了routes.php。 那麼如何創建一個鏈接到指定目錄下的文件呢?

<a href="http://my.domain.org/assets/pdf/file.pdf">Link</a> 

將無法​​正常工作,因爲路線不被laravel知道...

+0

我的回答對你 [這裏](http://stackoverflow.com/questions/18412680/jquery-mobile-links-and-radio-buttons-in-accordion-not-working/18412960# 18412960) 這個怎麼辦 – ShapCyber

+0

如果你把你的PDF文件放到你的公共目錄下,你可以創建一個直接鏈接,你試過了嗎? –

回答

2

在公共目錄中創建PDF某處,然後創建一個像這樣的鏈接到該文件:

URL::to('path/to/public/directory/file.pdf') 
+0

好吧,這會產生一個「Class」URL'not found「錯誤 - 可能是因爲我的test.php沒有使用laravel,而是存儲在laravel應用程序的公共目錄中...... – user2746374

+0

試過,但我不知道爲什麼它會自動下載 –

5

馬丁的故事是對的,但這是使用Laravel的刀片完成相同的另一種方式:

{{ link_to('/assets/pdf/file.pdf', 'Link') }} 
+0

我最喜歡這個 – Metropolis

0

如果您正在使用laravel 4的郵件功能,您可以將它添加到它

$message->attach($pathToFile); 

但PDF文件夾下的公共目錄的.pdf和這將使它:

$message->attach('pdf/mypdffile.pdf'); 

同樣可以是您可以添加到電子郵件

{{ URL::to('pdf/mypdffile.pdf') }} 

你不應該需要一個途徑來創建一個鏈接可以通過刀片做了鏈接。

8

要生成指向物理文件或目錄的鏈接,並且不想通過Laravel的應用程序(例如,通過index.php)運行,請使用URL::asset()

URL::asset('assets/pdf/file.pdf'); 

這假定您已在服務器上創建了一個您要鏈接到的物理PDF文件。如果您的PDF文件是動態的並且通過Laravel應用程序生成/檢索,則應使用URL::to(),URL::route()或類似文件。

+0

我該怎麼做laravel-5.3 –

相關問題