从部分匹配中获取.pdf文件的Javascript
Javascript to get .pdf file from partial match
这里的javascript新手在从web服务器获取部分匹配的.pdf文件时遇到问题。我制作了一个将数据输出到Web服务器的程序,其中一个组件是一个.pdf文件文件夹。我希望能够点击一个链接,根据生成的数据表中的值调出相应的.pdf文件(我使用的是slickgrid)。每个.pdf文件都包含数据表中的值,可以很好地查询.pdf文件夹,我用以下代码成功地获得了我想要的.pdfs:
var value = grid.getData().getItem(row)['data'];
var locpath = window.location.pathname.substring(0,window.location.pathname.lastIndexOf('/'));
var plotsFolder = window.location.protocol + "//" + window.location.host + locpath + "/CovPlots/";
var href = plotsFolder + value + ".pdf";
return "<a href='" + href + "'>" + value + "</a>";
这里的问题是,有时生成的.pdf文件是两个或多个(到目前为止,我已经看到了多达4个)"数据"字符串的串联,用"_"作为分隔符分隔,原因不值得深入研究。所以,如果.pdf文件是"somestring.pdf",我可以毫无问题地获得它。但是,如果.pdf文件是"somestring_aotherstring.pdf",如果我将"somestring"或"anotherstring"作为"data"的值,我就不知道如何获取该.pdf文件。
我尝试了很多不同的方法来获得某种查找,可以根据部分匹配来提取正确的文件。最近的尝试是使用javascript中的FilenameFilter对象,但由于不了解javascript,我很难让它工作。我尝试创建一个新函数,可以调用它来查找.pdf URL:
function lookup() {
File directory = new File(plotsFolder);
String[] myFiles = directory.list(new FilenameFilter() {
public boolean accept(File directory, String fileName) {
return fileName.match(value);
}
});
}
这似乎只是抛出了一个错误。有人能告诉我正确的方向,让我能够根据部分匹配下载正确的.pdf文件吗?我还试着看看是否有jquery的方法可以做到这一点,但似乎找不到有效的方法。提前感谢!
如果没有服务器的支持,JavaScript无法从部分文件名中找到文件。然而,你可以做的是在服务器上有一个小脚本,为JavaScript进行部分文件名匹配,然后JavaScript可以要求服务器进行匹配,然后当它得到匹配时,它可以使用该文件名。
如果你不介意一次加载所有PDF的完整索引,你可以使用这个小Python脚本生成一个漂亮的、JavaScript友好的JSON格式的索引:
#!/usr/bin/env python
# Create an index of a bunch of PDF files.
# Usage: python make_index.py directory_with_pdf_files
import os
import sys
import json
def index(directory):
index = {}
for filename in os.listdir(directory):
base, ext = os.path.splitext(filename)
if ext.lower() != '.pdf':
continue
for keyword in base.split('_'):
index[keyword] = filename
with open(os.path.join(directory, 'index.json'), 'w') as f:
f.write(json.dumps(index))
if __name__ == '__main__':
index(sys.argv[1])
然后你可以用jQuery或者其他什么加载index.json
。当您需要查找特定PDF的文件名时,可以执行以下操作(假设从index.json
加载的对象在indexOfPDFs
变量中):
var href = plotsFolder + indexOfPDFs[value];
- 下载HTML5/Javascript MOBILE应用程序中的PDF文件
- 下载所选语言的pdf文件
- JavaScript代码,用于在浏览器中显示字节数组中的PDF文件(非base64编码)
- Phonegap从PDF文件中获取内容
- 如何从地图导出图像并将其插入到新的PDF文件中
- 通过javascript获取pdf文件的表单数据
- Pdf.js:使用base64文件源而不是url来呈现Pdf文件
- 如何使用jquery在工具提示上显示pdf文件
- 在localhost/intranet上嵌入DOC、PPT、XLS、PDF文件
- 使用 php 将 pdf 文件转换为 html 文件
- 创建一个工具来打开android平板电脑上的本地pdf文件
- 将数据库中的数据转换为可下载的PDF文件
- 压缩使用 iText 创建的 PDF 文件
- 在jspdf中使用addHTML保存pdf文件失败
- 如何从输入字段在浏览器中显示PDF文件
- Cordova jsPDF-PDF生成,我在手机上找不到PDF文件
- 是否将PDF文件保存在其他应用程序可以访问的PhoneGap应用程序中?(iOS)
- web应用程序是否可以打开客户端上存在的pdf文件
- 如何使用HtmlUnit下载PDF文件
- Javascript无法识别两个不同的PDF文件