Typecho 文件下载插件,使下载的文件保持上传时的文件名。
- 仅对新上传的文件起作用。
- 旧文件需在修改文章页面点击附件中的文件重新插入新下载链接。
- 插件禁用后会导致启用插件期间已发布文章中的文件无法下载,进入修改文章页面点击附件中的文件重新插入下载链接即可恢复。
原文地址Typecho文件下载插件:DownloadFile 使下载的文件保持上传时的文件名
用了之后发现一个问题,所有的附件都会被重定向下载链接,这样就存在一个问题,当使用该插件后,如果不需要下载的附件链接也会重定向为下载链接。
解决思路
在点击附件插入附件链接时提示我需要插入为什么类型的链接。
解决办法
- 启用该插件
- 删除该插件的
powershell Plugin.php
文件中的下列两段:
Typecho_Plugin::factory ( 'admin/fiile-upload-js.php' )->bottom = array ('DownloadFile_Plugin','bottomJS' );
Typecho_Plugin::factory ( 'admin/write-page.php' )->bottom = array ('DownloadFile_Plugin','bottomJS');
- 在
powershell admin/file-upload-js.php
文件中修改`php
attachInsertEvent函数,将
php Typecho.insertFileToEditor(t.text(),
p.data('url'), p.data('image'));`修改为:
if(confirm("下载链接保留原文件名称?")==true)
Typecho.insertFileToEditor(t.text(), window.location.protocol + '//' + window.location.host + '/download/file?cid='+p.data('cid'), p.data('image'));
else
Typecho.insertFileToEditor(t.text(), p.data('url'), p.data('image'));
缺点
会因为版本更新而需要重新个性powershell admin/file-upload-js.php
文件。
最终文件
该插件的Plugin.php代码为:
<?php
if (! defined ( '__TYPECHO_ROOT_DIR__' ))
exit ();
/**
* 文件下载插件,使下载的文件保持上传时的文件名。
*
* @package DownloadFile
* @author DT27
* @version 1.0.0
* @link https://dt27.org/
*/
class DownloadFile_Plugin implements Typecho_Plugin_Interface {
/**
* 激活插件方法,如果激活失败,直接抛出异常
*
* @access public
* @return void
* @throws Typecho_Plugin_Exception
*/
public static function activate() {
// 创建路由
Helper::addRoute ( 'download.file', '/download/file', 'DownloadFile_Action', 'downloadFile' );
}
/**
* 禁用插件方法,如果禁用失败,直接抛出异常
*
* @static
*
* @access public
* @return void
* @throws Typecho_Plugin_Exception
*/
public static function deactivate() {
Helper::removeRoute ( 'download.file' );
}
public static function config(Typecho_Widget_Helper_Form $form) {
}
public static function personalConfig(Typecho_Widget_Helper_Form $form) {
}
}