У меня есть класс UploadHandler с параметрами и конструктором:
function __construct($profile_id, $options = null, $initialize = true, $error_messages = null) {
$this->response = array();
$this->options = array(
'script_url' => $this->get_full_url().'/'.basename($this->get_server_var('SCRIPT_NAME')),
'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')).'/files/'.$profile_id.'/', //'.$this->options['profile_id'].'/',
'upload_url' => $this->get_full_url().'/files/'.$profile_id.'/', //.$profile_id.'/' ---'.$this->options['profile_id'].'/',
'input_stream' => 'php://input',
Мой $ profile_id — это идентификатор профиля пользователя.
Это значение помещается как скрытое значение в форму загрузки файла.
Затем выполняется загрузка файла. Мой файл находится в каталоге, указанном пользователем в profile_id.
Но если мне нужно увидеть существующие файлы для пользователя, Плагин выполняет сканирование корневого каталога ‘server / php /’.
Хорошо. На момент написания этого поста мой случай работал хорошо. Пожалуйста, прочитайте следующее, чтобы добавить каталог пользователей о моментах загрузки.
В этом случае вам нужно переключить переменную POST / GET в server / php / index.php:
if(isset($_POST['profile_id'])) {
$profile_id = $_POST['profile_id'];}
if (isset ($ _ GET [‘profile_id’])) {
$ profile_id = $ _GET [‘profile_id’];
}
Поместите $ profile_id в класс (index.php):
$ upload_handler = new CustomUploadHandler ($ profile_id, $ вариантов);
Измените main.js blueimp из строки 58 (замените следующим кодом):
} else {
// Load existing files:
$('#fileupload').addClass('fileupload-processing');
//var profile_id = Session["profile_id"];
//var profile_id = oForm.elements["profile_id"].value;
//var ee = $('#fileupload').fileupload('option', 'url');
var form = $("#fileupload");
var profile_id = $("[name='profile_id']", form).val();
//alert(ee);
//alert(profile_id);
$.ajax({
// Uncomment the following to send cross-domain cookies:
//xhrFields: {withCredentials: true},
url: $('#fileupload').fileupload('option', 'url') +'?profile_id='+profile_id,
//url: 'server/php/files/'+profile_id +'/',
dataType: 'json',
context: $('#fileupload')[0]
}).always(function () {
$(this).removeClass('fileupload-processing');
}).done(function (result) {
$(this).fileupload('option', 'done')
.call(this, $.Event('done'), {result: result});
});
}
Вы должны иметь скрытый ввод с вашим пользователем (ID, XX, TTT) в #fileupload:
Наслаждайтесь!
Задача ещё не решена.
Других решений пока нет …