2011-06-30 75 views
2

我在这里问,希望有些会员对'plupload'的帮助足够熟悉。 这个小jquery脚本正在让我的文件上传问题消失,所以任何帮助将不胜感激。Plupload文件名问题

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

EG p163g1k1er15n310bi18bq1af61rc21.zip 

我与基本的上传体验形成我的假设是,它是写出来一个临时文件名,意图在分块后的部分放回到一起时将其重命名为原始文件名,但出于某种原因,它可能不会这样做。

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

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

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

回答

5

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

docs

unique_names 上传时生成唯一的文件名。这将生成文件的独特文件名 ,因此它们 不会与服务器上的现有文件相冲突。

确保此选项未在您的配置中启用(它不是默认情况下)。还有由默认运行一些文件名清洁程序中包括PHP上传脚本...

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

...和下​​划线总是与一些附加文件是否存在(配置如何),像filename_2.jpg ,但除此之外,它不应该改变你的文件名。

编辑:我一直在寻找的forums的解决方案,但来了短,我的最后一条建议是尝试HTML5的运行时间,看看这是主题相关的Flash运行时,因为有有以前版本为some issues。如果一切都失败了,请在论坛上发帖 - 管理员非常敏感。祝你好运,如果你找到它,请在这里发布解决方案。

+0

谢谢,我会寻找这个,看看我能否得到它的工作。 – Andrew

+0

我按照你的建议评论了有问题的那一行,但不幸的是我仍然在服务器上获得相同的奇怪文件名。 – Andrew

+0

我已检查编辑是在服务器上,并使用不同的浏览器来避免任何缓存问题。如果你不介意可以告诉我如何检查版本和运行时 – Andrew

1

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

0

要保留原始文件名,如果您使用plupload提供的upload.php,那么我必须更改上传。PHP的线34从

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

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

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

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

添加一些注射这将得到真正的文件在您的服务器端名称之后(上传.php)

$oFileName = $_REQUEST["oFileName"];