gpt4 book ai didi

node.js - 获取文件名作为请求参数

转载 作者:太空宇宙 更新时间:2023-11-04 01:04:35 24 4
gpt4 key购买 nike

我尝试使用 node.js 加载文件。

在我看来,我有一个按钮:

doctype 5
html(ng-app="lineApp")
head
title= title
link(rel='stylesheet', href='/stylesheets/style.css')
body
p filename: #{filename}
button(onclick="location.href='/app/#{filename}'") click me

页面显示一段文件名:C:\users\username\my filename.txt。当我单击按钮时,URL 类似于 http://localhost:8080/app/C:usersusernamemy%20filename.txt

所以当我尝试检索参数时

exports.appli = function (req, res) {
var filename = req.params.filename;
//....
});
};

与服务器端调用:

app.get('/app/:filename?', routes.appli);

我得到了无效的文件名。我的问题是,如何将文件路径作为 URL 中的参数传递?

最佳答案

这是斜杠充当转义字符的问题。

第一次将字符串传递给客户端时,任何转义的斜杠(例如:c:\\users\\username\\my file.txt)都会转换为单斜杠。

当您使用 href.location 时,斜杠再次充当转义字符...这就是当您尝试使用它调用服务器时它们会丢失的原因。

你可以:

  1. 创建两个变量传递给 jade 模板,一个是原样的文件名,另一个是 HTML 编码的字符串
  2. 将变量传递给jade模板:

例如,根据您的原始 Jade :

body
p filename: #{filename}
button(onclick="location.href='/app/#{encodedFilename}'") click me

关于node.js - 获取文件名作为请求参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24272508/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com