我需要实现一个基于 Flash 的文件上传器,它允许我一次上传多个文件并查看进度。

我试过 上传Swf上传 让他们工作很容易。

然而,对于这两种情况,当用户尝试上传文件名带有特殊字符(例如丹麦语 æøå 或瑞典语 ö - 以及我确信的其他字符)的文件时,我都遇到了问题。

文件上传正常,但文件名搞砸了:

  • malmö.jpg 变为 malmö.jpg
  • æblemoster.jpg 变为 êblemoster.jpg

当然,我尝试过在不使用 Flash 的情况下将文件提供给我的上传脚本 - 然后它们就可以正常工作。因此,据我所知,flash 上传对象和/或 javascript 会抓取文件 - 并以某种方式将文件名搞乱。

有没有人遇到过类似的事情 - 也许知道我如何才能使这项工作按预期进行?

有帮助吗?

解决方案

SWFObject 输入很可能发送 UTF8 编码数据,并且服务器端的脚本将它们作为 ISO-8859-1 进行处理。要快速修复(如果您在服务器端使用 PHP),请尝试对传入文件名使用 utf8_decode()。

如果我是你,我会考虑简单地过滤掉所有变音符号并将它们转换为非变音符号或“o”、“a”、“u”。它让生活更轻松。

其他提示

由于在这两种情况下都使用了闪存,因此我假设闪存要么不解码其读入的文件名,要么对其发布的文件名进行编码(或两者兼而有之)。

需要打开 flash .fla 文件来检查解码/编码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top