У меня есть страница, которая управляет загрузкой в определенных папках. На этой странице есть форма загрузки для каждой папки. Итак, вот мой файл javascript (main.js), каждая форма имеет класс «.fileupload»:
$(function () {
'use strict';
$('.fileupload').fileupload();
$('.fileupload').addClass('fileupload-processing');
$.ajax({
url: $('.fileupload').fileupload('option', 'url'),
dataType: 'json',
context: $('.fileupload')[0]
}).always(function () {
$(this).removeClass('fileupload-processing');
}).done(function (result) {
$(this).fileupload('option', 'done')
.call(this, $.Event('done'), {result: result});
});
});
Чтобы указать сценарию перехватывать и загружать файлы в определенную папку, я добавляю переменную «folder» в путь действия, который я получу в своем сценарии загрузки index.php. Вот мой HTML:
<form class="fileupload" action="//mywebsite.com/server/php/index.php?folder=<?=$folder?>" method="POST" enctype="multipart/form-data">
...
</form>
Вот мой PHP (сервер / php / index.php):
require('UploadHandler.php');
$upload_handler = new UploadHandler(array(
'upload_dir' => "/home/mywebsite/public_html/users/" . $_GET['folder'],
'upload_url' => "//mywebsite.com/users/" . $_GET['folder']
));
Проблема в том, что это не похоже на работу. Я имею в виду, изображения, расположенные в каждой папке, не отображаются, и загрузка все равно не начинается.
Мой вопрос, как заставить (через мой HTML / PHP) путь сценария загрузки с конкретной переменной (здесь «папка») инкапсулированы?
Я не совсем уверен, что <?=$folder?>
делает, но я подозреваю, что это проблема. Почему бы не создать динамическую ссылку в вашей функции JS? Что-то вроде:
var folder = 'folder1'; //<-- insert folder name here
var actionlink = '//mywebsite.com/server/php/index.php?folder=' + folder;
$('.fileupload').attr('action', actionlink);
Других решений пока нет …