Plupload文件名问题

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

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

EG p163g1k1er15n310bi18bq1af61rc21.zip 

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

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

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

一如既往,任何帮助将不胜感激。

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

来自文档 :

unique_names上传时生成唯一的文件名。 这将为文件生成unqiue文件名,以便它们不会与服务器上的现有文件名冲突。

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

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

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

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

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

要保留原始文件名,如果你使用plupload提供的upload.php那么我不得不改变upload.php第34行

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

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

我有同样的问题。 另一种解决方案是将实际文件名作为新输入注入FormData对象。 (我正在使用chrome和HTML5运行时!)在plupload.html5.js文件中找到对象的创建O = new FormData(); 并加入一些注射剂

 var oFileName = $("input[name='oFileName']").val(); O.append("oFileName", V.name); 

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

 $oFileName = $_REQUEST["oFileName"];