簡體   English   中英

上傳文件名問題

[英]Plupload filename problem

我在這里問是希望一些成員對'plupload'足夠熟悉以提供幫助。 這個小 Jquery 腳本正在解決我的文件上傳問題 go ,所以任何幫助將不勝感激。

問題:我可以使用 plupload 上傳大文件,但是當出現在服務器上時,名稱已變為亂碼,

EG p163g1k1er15n310bi18bq1af61rc21.zip

根據我對基本上傳 forms 的經驗,我的假設是它正在寫出一個臨時文件名,目的是在將分塊部分重新組合在一起時將其重命名為原始文件名,但由於某種原因它可能不會這樣做。

我已將文件夾的權限更改為 777,所以我有理由確定這不是問題。

正在使用的運行時是 Flash(我需要分塊功能)。 它的版本是 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 object。 (我正在使用 chrome 和 HTML5 運行時!)在plupload.html5.js文件中找到 object O = new FormData(); 並添加一些注射

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

添加后在服務器端獲取真實文件名(對於upload.php)

$oFileName = $_REQUEST["oFileName"];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM