Plupload文件名问题

时间:2011-06-30 12:28:12

标签: javascript jquery plupload

我在这里问,希望有些成员能够熟悉“plupload”来提供帮助。 这个小小的Jquery脚本正在使我的文件上传问题消失,所以任何帮助都将非常感激。

问题: 我可以使用plupload上传大文件,但是当服务器上显示的名称已更改为乱码时,

EG p163g1k1er15n310bi18bq1af61rc21.zip

根据我对基本上传表单的体验,我的假设是它正在编写一个临时文件名,目的是在将chunked部分重新组合在一起时将其重命名为原始文件名,但由于某种原因,它可能没有此

我已将文件夹的权限更改为777,所以我有理由相信这不是问题。

正在使用的运行时是Flash(我需要分块功能)。它的版本是1.4.3.2

一如既往,我们非常感谢任何帮助。

4 个答案:

答案 0 :(得分:5)

有一个配置选项可以生成唯一的文件名,而不是使用实际的文件名。

来自docs

  

<强> unique_names   上传时生成唯一的文件名。这将产生unqiue   文件的文件名,以便他们   不要与例如碰撞   服务器上现有的。

确保配置中未启用此选项(默认情况下不是这样)。仍然有一些文件名清理例程由默认包含的php上传脚本运行...

// Clean the fileName for security reasons
$fileName = preg_replace('/[^\w\._]+/', '', $fileName);

...如果文件存在(无论配置如何),下划线总是附加一个数字,如filename_2.jpg,但除此之外,它不应该改变您的文件名。

编辑:我一直在寻找forums的解决方案,但是我的最后一条建议是尝试HTML5运行时,看看这是否与Flash运行时以某种方式,因为有some issues以前的版本。如果所有其他方法都失败了,请在论坛上发布 - 管理员会非常敏感。祝您好运,如果您找到它,请在此处发布解决方案。

答案 1 :(得分:1)

Ploploader使用一个名为“unique_names”的变量;在我的情况下,这被设置为TRUE,但是为了保留实际的文件名,它应该设置为false。解决方案来自Pluploader论坛。

答案 2 :(得分:0)

要保留原始文件名,如果使用plupload提供的upload.php,那么我必须更改upload.php第34行

$fileName = isset($_REQUEST['name']) ? $_REQUEST['name'] : '';

$fileName = isset($_FILES['file']["name"]) ? $_FILES['file']["name"] : '';

答案 3 :(得分:0)

我遇到了同样的问题。另一种解决方案是将实际文件名作为新输入注入FormData对象。 (我正在使用chrome和HTML5运行时!) 在O = new FormData();文件中找到对象var oFileName = $("input[name='oFileName']").val(); O.append("oFileName", V.name); 的创建 和 添加一些注射

$oFileName = $_REQUEST["oFileName"];

此添加后,在服务器端获取真实文件名(对于upload.php)

f.input :from, :as => :select, :collection => ["Kolkata","Mumbai"]