wordpress 文章中如何提供下载本地文件的功能

wordpress 文章中如何提供下载本地文件的功能,第1张

插入一段时间pdf代码即可:

<?php

// Created with Phpstorm by PenguinStudio/Penguin.

$file_name = "a.pdf"     //下载文件

$file_dir = "./"        //下载文件存放目录

//检查文件是否存在

if (! file_exists ( $file_dir . $file_name )) {

    header('HTTP/1.1 404 NOT FOUND')

} else {

    //以只读和二进制模式打开文件

    $file = fopen ( $file_dir . $file_name, "rb" )

    //告诉浏览器这是一个文件流格式的文件

    Header ( "Content-type: application/octet-stream" )

    //请求范围的度量单位

    Header ( "Accept-Ranges: bytes" )

    //Content-Length是指定包含于请求或响应中数据的字节长度

    Header ( "Accept-Length: " . filesize ( $file_dir . $file_name ) )

    //用来告诉浏览器,文件是可以当做附件被下载,下载后的文件名称为$file_name该变量的值。

    Header ( "Content-Disposition: attachment filename=" . $file_name )

    //读取文件内容并直接输出到浏览器

    echo fread ( $file, filesize ( $file_dir . $file_name ) )

    fclose ( $file )

    exit ()

}

因为浏览器会自动渲染部分文件的内容,而不是自动下载,故而需要用到这种功能。

在 functions.php 文件里面添加下面代码:

add_action('media_buttons', 'add_my_media_button')

function add_my_media_button() {

echo '<a href="#" id="insert-my-media" class="button">Add my media</a>'

}

添加后,登录后台编辑文章看到如图所示:

2、添加命令

继续添加代码,引用自己定义的JS,我命名为 media_button.js ,存放好路径之后,自己修改 path/to/ 为存放的路径。

function include_media_button_js_file() {

wp_enqueue_script('media_button', 'path/to/media_button.js', array('jquery'), '1.0', true)

}

3、添加JS命令

media_button.js 添加下面代码:

jQuery(function($) {

jQuery(document).ready(function(){

jQuery('#insert-my-media').click(open_media_window)

})

function open_media_window() {

if (this.window === undefined) {

this.window = wp.media({

title: 'Insert a media',

library: {type: 'image'},

multiple: false,

button: {text: 'Insert'}

})

var self = this// Needed to retrieve our variable in the anonymous function below

this.window.on('select', function() {

var first = self.window.state().get('selection').first().toJSON()

wp.media.editor.insert('[myshortcode id="' + first.id + '"]')

})

}

this.window.open()

return false

}

})


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11961916.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存