【问题标题】:Set image src with %2F in filename在文件名中使用 %2F 设置图像 src
【发布时间】:2021-04-24 03:57:36
【问题描述】:

使用 javascript,我正在设置图像对象的 src 属性

    mainImage.src = filePath;

当 filePath 类似于 C:\images\pink.jpg 时,我没有问题 但是我发现了一个文件名属于以下类型的错误:

    C:\images\uploads%2Fcard%2Fimage%2F1574322%2F0b0640a8-cfca-45fa-b1c7-2cfc9a97c146.jpg%2Ffull-fit-in__950x534.jpg

似乎 %2F 被读取为 \ 字符,我最终得到一个 net::ERR_FAILED 错误。 但是文件名实际上是 uploads%2Fcard%2Fimage%2F1574322%2F0b0640a8-cfca-45fa-b1c7-2cfc9a97c146.jpg%2Ffull-fit-in__950x534.jpg。

有没有办法用这些文件名设置图像的 src 属性而不会出现任何错误?我在电子项目中设置此值,这意味着正在使用 chrome 进行测试。 非常感谢

【问题讨论】:

  • 在您的代码中图像是否具有此名称结构?似乎最好的选择是首先清理创建这些的过程。
  • 您是否尝试在文件路径前添加file:?像这样:file://C:\images\uploads%2Fcard%2Fimage%2F1574322%2F0b0640a8-cfca-45fa-b1c7-2cfc9a97c146.jpg%2Ffull-fit-in__950x534.jpg
  • 是的,我做到了。这是完整的错误:/C:/Projects/Javascript/photos/test/uploads%2Fcard%2Fimage%2F1574322%2F0b0640a8-cfca-45fa-b1c7-2cfc9a97c146.jpg%2Ffull-fit-in__950x534.jpg:1 GET 文件: ///C:/Projects/Javascript/photos/test/uploads%2Fcard%2Fimage%2F1574322%2F0b0640a8-cfca-45fa-b1c7-2cfc9a97c146.jpg%2Ffull-fit-in__950x534.jpg net::ERR_FAILED

标签: javascript google-chrome


【解决方案1】:

encodeURI 可以解决问题。

let url = 'file:///c:/images/uploads%2Fcard%2Fimage%2F1574322%2F0b0640a8-cfca-45fa-b1c7-2cfc9a97c146.jpg%2Ffull-fit-in__950x534.jpg'

mainImage.src = encodeURI(url);

【讨论】:

  • 谢谢。该字符串很好地解析,但我收到一个错误,可能来自电子,它说: [5464:0120/021413.476:ERROR:CONSOLE(0)] “不允许加载本地资源:file:///C:/Users/igweo/ OneDrive/Pictures/seamm_jasani.jpg”,来源:devtools://devtools/bundled/devtools_app.html?remoteBase=chrome-devtools-frontend.appspot.com/serve_file/…(0)
  • 它来自 Electron,但这是另一个问题,对于您的问题,我回答了正确的答案,请使用新问题创建一个新问题。您可以检查此答案,它可能会有所帮助:stackoverflow.com/questions/41130993/… 如果您发现它正确,请检查我的答案作为答案。
猜你喜欢
  • 2018-07-14
  • 1970-01-01
  • 1970-01-01
  • 2017-09-28
  • 2011-01-12
  • 2017-11-13
  • 1970-01-01
  • 2021-05-17
  • 1970-01-01
相关资源
最近更新 更多