Проблема с именем файла Plupload - PullRequest
2 голосов
/ 30 июня 2011

Я спрашиваю здесь в надежде, что некоторые участники будут достаточно знакомы с «plupload», чтобы помочь. Этот маленький Jquery-скрипт на пути к устранению проблем с загрузкой файлов, поэтому любая помощь будет принята с благодарностью.

Вопрос: Я могу загружать большие файлы, используя plupload, но при появлении на сервере имя изменилось на бред,

EG p163g1k1er15n310bi18bq1af61rc21.zip

Исходя из моего опыта работы с базовыми формами загрузки, я предполагаю, что он записывает временное имя файла с намерением переименовать его в исходное имя файла, когда разделенные фрагменты были собраны обратно, но по какой-то причине это может не выполняться это.

Я изменил разрешение для папки на 777, поэтому я вполне уверен, что это не проблема.

Используется среда выполнения Flash (мне требуется функция чанкинга). Это версия 1.4.3.2

Как всегда, любая помощь будет высоко ценится.

Ответы [ 4 ]

5 голосов
/ 30 июня 2011

Существует опция конфигурации для генерации уникальных имен файлов вместо использования фактического имени файла.

Из документов :

unique_names Генерация уникальных имен файлов при загрузке. Это будет генерировать unqiue имена файлов для файлов, чтобы они например, не сталкиваются с существующие на сервере.

Убедитесь, что эта опция не включена в вашей конфигурации (это не по умолчанию). Есть еще некоторые процедуры очистки имен файлов, запускаемые по умолчанию включенным скриптом загрузки php ...

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

... и к символу подчеркивания всегда добавляется число, если файл существует (независимо от конфигурации), например filename_2.jpg, но, кроме этого, он не должен изменять имена файлов.

РЕДАКТИРОВАТЬ : я искал на форумах решение, но в скором времени мой последний совет - попробовать среду выполнения HTML5, чтобы посмотреть, не связано ли это как-то во время выполнения Flash, так как были некоторые проблемы с предыдущими версиями. Если ничего не помогает, пишите на форуме - администраторы там очень отзывчивы. Удачи, пожалуйста, опубликуйте решение здесь, если найдете его.

1 голос
/ 01 июля 2011

Ploploader использует переменную с именем «unique_names»;в моем случае это было установлено в TRUE, однако, чтобы сохранить фактические имена файлов, оно должно быть установлено в false.Решение пришло с форума Pluploader.

0 голосов
/ 18 февраля 2016

У меня была такая же проблема.Другое решение состоит в том, чтобы ввести реальное имя файла в качестве нового ввода в объект FormData.(Я использую Chrome и среду выполнения HTML5!) В файле plupload.html5.js найдите создание объекта O = new FormData(); и добавьте несколько инъекций с помощью

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

После этого добавления получите настоящее имя файла на стороне серверадля загрузки.php)

$oFileName = $_REQUEST["oFileName"];
0 голосов
/ 27 февраля 2013

Чтобы сохранить исходное имя файла, если вы используете upload.php, предоставленный plupload, мне пришлось изменить строку upload.php 34 с

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

до

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