You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取WordPress站点wp-content/uploads文件夹的文件路径与文件名?

解决WordPress上传文件夹图片路径导出的几种方法

方法1:直接通过服务器文件管理器/FTP导出(最省心,无需代码)

  • 登录服务器控制面板(比如cPanel),找到文件管理器,定位到wp-content/uploads文件夹
  • 按文件类型筛选出图片(只选.jpg/.png/.webp等格式),直接复制路径和文件名,或者右键导出文件列表为文本
  • 用FTP工具(比如FileZilla)的话,连接服务器后找到uploads文件夹,右键选「导出列表」就能保存为包含路径的文本文件

方法2:WordPress临时脚本实现(无需PHP基础)

你找到的list_files()可以这么用,步骤简单:

  1. 在WordPress根目录新建一个临时文件,命名为export-images.php
  2. 复制下面的代码进去:
<?php
// 加载WordPress环境
require_once('wp-load.php');

// 获取uploads文件夹的本地路径和网站URL
$uploads = wp_upload_dir();
$local_dir = $uploads['basedir'];
$base_url = $uploads['baseurl'];

// 筛选图片文件
$all_files = list_files($local_dir);
$image_ext = ['jpg', 'jpeg', 'png', 'gif', 'webp'];
$image_list = [];

foreach ($all_files as $file) {
    $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
    if (in_array($ext, $image_ext)) {
        // 转成网站可访问的URL路径
        $image_url = str_replace($local_dir, $base_url, $file);
        $image_list[] = $image_url;
    }
}

// 生成下载文件
header('Content-Type: text/plain');
header('Content-Disposition: attachment; filename="wp-images.txt"');
echo implode("\n", $image_list);
exit;
  1. 访问你的网站域名+/export-images.php(比如https://你的域名.com/export-images.php),浏览器会自动下载包含所有图片URL的文本文件
  2. 用完立刻删除这个临时文件,避免安全风险

方法3:修复你的Python代码(解决登录失败问题)

你的原代码有几个逻辑问题,修改后可以正常运行:

import requests
from bs4 import BeautifulSoup

def save_image_urls(session, uploads_url):
    # 获取uploads页面内容
    res = session.get(uploads_url)
    soup = BeautifulSoup(res.text, 'html.parser')
    
    # 提取所有图片链接
    image_urls = []
    for link in soup.find_all('a', href=True):
        href = link['href']
        ext = href.split('.')[-1].lower()
        if ext in ['jpg', 'jpeg', 'png', 'gif', 'webp']:
            image_urls.append(href)
    
    # 保存到本地文本
    with open('wp-images.txt', 'w', encoding='utf-8') as f:
        f.write('\n'.join(image_urls))
    print(f"搞定!导出了{len(image_urls)}个图片路径到wp-images.txt")

# 配置你的信息
wp_login_url = 'https://你的域名.com/wp-login.php'
wp_admin_url = 'https://你的域名.com/wp-admin/'
uploads_url = 'https://你的域名.com/wp-content/uploads/'
username = '你的管理员账号'
password = '你的管理员密码'

with requests.Session() as s:
    # 先获取登录页面的隐藏字段
    login_page = s.get(wp_login_url)
    soup = BeautifulSoup(login_page.text, 'html.parser')
    logincookie = soup.find('input', {'name': 'logincookie'})
    
    # 组装登录数据
    login_data = {
        'log': username,
        'pwd': password,
        'wp-submit': '登录',
        'redirect_to': wp_admin_url,
        'testcookie': '1'
    }
    if logincookie:
        login_data['logincookie'] = logincookie['value']
    
    # 执行登录
    login_res = s.post(wp_login_url, data=login_data)
    
    # 检查登录状态
    if wp_admin_url in login_res.url:
        print("登录成功,开始爬取图片路径...")
        save_image_urls(s, uploads_url)
    else:
        print("登录失败!检查账号密码或登录URL是否正确")

注意:

  • 先安装依赖库:pip install beautifulsoup4
  • 如果你的uploads文件夹禁止直接访问(多数主机默认设置),这个方法可能失效,优先用前两种

方法4:Excel VBA实现(适配你的VBA基础)

打开Excel按Alt+F11打开VBA编辑器,插入模块后粘贴代码:

Sub ExportWPImagePaths()
    Dim mappedDrive As String, domainUrl As String, saveTxtPath As String
    Dim fso As Object, folder As Object, file As Object
    Dim fNum As Integer
    
    ' 配置信息:替换成你的映射驱动器和域名
    mappedDrive = "Z:\" ' 先把uploads文件夹映射为本地Z盘
    domainUrl = "https://你的域名.com/"
    saveTxtPath = ThisWorkbook.Path & "\wp-images.txt"
    
    ' 初始化文件系统对象
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(mappedDrive & "wp-content\uploads")
    
    ' 打开文本文件准备写入
    fNum = FreeFile()
    Open saveTxtPath For Output As #fNum
    
    ' 遍历筛选图片
    For Each file In folder.Files
        Dim ext As String
        ext = LCase(fso.GetExtensionName(file.Name))
        If ext = "jpg" Or ext = "jpeg" Or ext = "png" Or ext = "gif" Or ext = "webp" Then
            ' 转换为网站URL路径
            Dim imgUrl As String
            imgUrl = Replace(file.Path, mappedDrive, domainUrl)
            Print #fNum, imgUrl
        End If
    Next file
    
    Close #fNum
    MsgBox "图片路径已导出到:" & saveTxtPath, vbInformation
End Sub

使用前先把服务器的uploads文件夹映射为本地网络驱动器(Windows此电脑→映射网络驱动器),运行宏即可生成文本文件

内容的提问来源于stack exchange,提问作者Vangelis Atlidakis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 19:17:15