2011-06-30 81 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"];