Я пытаюсь использовать плагин swfupload для загрузки файлов. Дело в том, что я хочу, чтобы пользователь мог переключать каталог для загрузки в.
Странная вещь (и, возможно, это из-за моего ограниченного знания jQuery), что у меня появляется правильный каталог при проверке его с предупреждением, но все равно загрузка идет в ранее выбранный каталог.
т.е. если я открою страницу и нажму на ссылку для загрузки, появится div с именем uploadPanel, который загружает swfupload. Я могу сделать первую загрузку нормально. Но если я выберу другой каталог, он не будет работать. Я поставил предупреждение для проверки правильности переменной текущего каталога. Это предупреждение всегда правильно отображает текущий каталог. Но, тем не менее, когда вызывается метод действия в коде сервера, каталог всегда соответствует первому выбранному каталогу, который у меня был при первой загрузке.
Вот код jQuery:
<script type="text/javascript">
var uploadDir;
$(function () {
$("#uploadPanel").hide();
var auth = "<% = Request.Cookies[FormsAuthentication.FormsCookieName]==null ? string.Empty : Request.Cookies[FormsAuthentication.FormsCookieName].Value %>";
loadFileManager();
$("#uploadLink").click(function (event) {
$('#uploadPanel').show();
alert("uploadDir: " + uploadDir); //NOTE!!!: This shows the correct current directory, and yet, in post_params below, a previous directory is still sent to the action method in the Controller. How is this possible when the alert shows the correct directory?
$("#inputFile").makeAsyncUploader({
upload_url: "/Upload/AsyncUpload/",
flash_url: '/Scripts/swfupload.swf',
button_image_url: '/Scripts/blankButton.png',
post_params: { token: auth, currentDirectory: uploadDir },
use_query_string: true,
disableDuringUpload: 'INPUT[type="submit"]'
});
$("#closeButton").click(function () {
$("#uploadPanel").hide();
$("#inputFile_completedMessage").hide();
});
});
});
</script>
Примечание: uploadDir установлен в другом месте, в отдельном js-файле. Но дело в том, что его значение всегда правильно в предупреждении, так почему бы не вызвать метод действия?