我在Smarty模板中有这个代码,生成文件链接(将是PDF格式):
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
import Customers from './components/Customers/Customers.vue'
const router = new VueRouter({
mode: 'history',
base: __dirname,
history: true,
routes: [
{ path: '/customers', component: Customers }
]
})
new Vue ({
router
}).$mount('#app')
我在另一个问题中发现了一种使用PHP从PDF生成预览图像的方法。
{foreach from=$attachments_data item="file"}
<p class="attachment__item">
{$file.description} ({$file.filename}, {$file.filesize|formatfilesize nofilter}) [<a class="attachment__a cm-no-ajax" href="{"attachments.getfile?attachment_id=`$file.attachment_id`"|fn_url}">{__("download")}</a>]
</p>
{/foreach}
有没有办法将这个PHP转换为Smarty才能使用我的CS-Cart模板文件?还是有另一种方法可以做到这一点?
答案 0 :(得分:1)
我的偏好是将这些缓存到一个用于静态读取的临时文件夹中,但是,您可以使用您提供的那部分PHP轻松地按需执行此操作
请实施更好的文件系统安全
<强> pdf_to_image.php 强>
<?php
// you must create better file system security than this
$filename = 'directory_with_pdfs' . DIRECTORY_SEPERATOR . basename( $_GET['filename'] );
if( file_exists( $filename ) === true )
{
$im = new imagick( $filename . '[0]' );
$im->setImageFormat('jpg');
header('Content-Type: image/jpeg');
header('Content-Disposition: attachment; filename="'.basename($filename).'"');
echo $im;
}
else
{
http_response_code(404);
}
Smarty语法
{foreach from=$attachments_data item="file"}
<img src="pdf_to_image.php?filename={$file.filename|urlencode}">
{/foreach}