如何处理文件名中的井号('#')?

ms_nitrogen

当涉及到Node.js中的文件名时,我遇到了一个问题,其中某些传入文件带有井号#,这在使用文件系统然后使用从文件名派生的URL来在<img>标签中重新访问它时会导致问题

var fileDir = "/foo/bar#s.png/";
var dirContents = fs.readdirSync(fileDir);

document.getElementById("id1").src = encodeURIComponent(path.join('cache', fileDir, dirContents[0]))
// %2Fcache%2Ffoo%2Fbar%23s.png%2Fbar%23s%2001.png :: Broken img

document.getElementById("id2").src = path.join('cache', fileDir, dirContents[1])
// /cache/foo/bar#s.png/bar#s 02.png :: Also broken img

我可以控制目录名称,但是最终文件.pngs由加载文件的用户决定。我该如何处理这些字符?

贝吉

您将逃脱这些字符

document.getElementById("id1").src = path.join('cache',
                                               ...fileDir.split("/").map(encodeURIComponent),
                                               encodeURIComponent(dirContents[0]));

但是,您将需要确保服务器在收到图像请求时再次正确地对其解码,并非所有实现都同意如何处理文件路径中的百分比编码。一种更简单,可能更好的方法是首先防止这些字符出现在文件名中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何处理文件名以bash中的空格开头?

来自分类Dev

如何处理bash中的文件名?

来自分类Dev

如何使用PowerShell的FtpWebRequest类从FTP服务器下载文件名中包含井号/井号'#'的文件

来自分类Dev

htaccess重写为名称文件名中带有井号(#)的文件

来自分类Dev

git在文件名之前和之后的井号#的含义?

来自分类Dev

如何处理带空格的文件名?

来自分类Dev

如何处理“:”或“?”之类的字符 使无效的文件名?

来自分类Dev

如何处理 Carrierwave 文件名:nil

来自分类Dev

lucene如何处理StringField中的点('。')?(发布索引和搜索文件名)

来自分类Dev

从git diff --name-only迭代结果时如何处理文件名中的空格

来自分类Dev

在python中使用子进程时如何处理文件名中的空格

来自分类Dev

“错误的命令行参数”如何处理文件名中的空格

来自分类Dev

lucene如何处理StringField中的点('。')?(发布索引和搜索文件名)

来自分类Dev

如何处理zsh完成函数中包含单引号的文件名?

来自分类Dev

在python中使用子进程时如何处理文件名中的空格

来自分类Dev

git-bash如何处理文件名中的空格

来自分类Dev

命令行:如何处理文件名中的空格

来自分类Dev

如何处理路径中文件名中的空格

来自分类Dev

批处理文件中“#”(井号)的用法

来自分类Dev

如何从文件名中删除撇号?

来自分类Dev

下载-在询问用户文件名时如何处理开放式网络连接?

来自分类Dev

os.walk返回不同编码的非ASCII(unicode)文件名,如何处理?

来自分类Dev

在这种情况下如何处理恶意文件名

来自分类Dev

如何通过批处理发送文件名并在Java中接受文件名

来自分类Dev

如何使用PHP处理文件名中的引号

来自分类Dev

如何从批处理中的变量写入文件名

来自分类Dev

如何批量处理文件名中的空格?

来自分类Dev

批处理脚本中文件名“ Testing xx-Random.txt”中的增量号?

来自分类Dev

如何处理bash脚本中包含阿拉伯文,中文,印地文字符的“ YouTube文件名”?

Related 相关文章

  1. 1

    如何处理文件名以bash中的空格开头?

  2. 2

    如何处理bash中的文件名?

  3. 3

    如何使用PowerShell的FtpWebRequest类从FTP服务器下载文件名中包含井号/井号'#'的文件

  4. 4

    htaccess重写为名称文件名中带有井号(#)的文件

  5. 5

    git在文件名之前和之后的井号#的含义?

  6. 6

    如何处理带空格的文件名?

  7. 7

    如何处理“:”或“?”之类的字符 使无效的文件名?

  8. 8

    如何处理 Carrierwave 文件名:nil

  9. 9

    lucene如何处理StringField中的点('。')?(发布索引和搜索文件名)

  10. 10

    从git diff --name-only迭代结果时如何处理文件名中的空格

  11. 11

    在python中使用子进程时如何处理文件名中的空格

  12. 12

    “错误的命令行参数”如何处理文件名中的空格

  13. 13

    lucene如何处理StringField中的点('。')?(发布索引和搜索文件名)

  14. 14

    如何处理zsh完成函数中包含单引号的文件名?

  15. 15

    在python中使用子进程时如何处理文件名中的空格

  16. 16

    git-bash如何处理文件名中的空格

  17. 17

    命令行:如何处理文件名中的空格

  18. 18

    如何处理路径中文件名中的空格

  19. 19

    批处理文件中“#”(井号)的用法

  20. 20

    如何从文件名中删除撇号?

  21. 21

    下载-在询问用户文件名时如何处理开放式网络连接?

  22. 22

    os.walk返回不同编码的非ASCII(unicode)文件名,如何处理?

  23. 23

    在这种情况下如何处理恶意文件名

  24. 24

    如何通过批处理发送文件名并在Java中接受文件名

  25. 25

    如何使用PHP处理文件名中的引号

  26. 26

    如何从批处理中的变量写入文件名

  27. 27

    如何批量处理文件名中的空格?

  28. 28

    批处理脚本中文件名“ Testing xx-Random.txt”中的增量号?

  29. 29

    如何处理bash脚本中包含阿拉伯文,中文,印地文字符的“ YouTube文件名”?

热门标签

归档