У меня есть некоторые проблемы в моей задаче. Я создал проект asp.net mvc и загрузил изображение на сервер. Для загрузки я использую swfupload. Существует код для создания загрузчика:
<script>
$(function() {
$("#photo").makeAsyncUploader({
upload_url: "/Home/AsyncUpload/<%= ViewData["guid"]%>",
flash_url: '/Scripts/swfupload.swf',
button_image_url: '/Content/blankButton.png',
disableDuringUpload: 'INPUT[type="submit"]'
});
});
</script>
Это для одной кнопки с именем "фото". Но должно быть больше кнопок с именем "photo1" "photo2"... Я создал скрипт для добавления в div нового ввода:
<input type="button" onclick="add()" value="Add new button"/>
<script type="text/javascript">
function add() {
var newelement = document.createElement('p');
newelement.setAttribute("class", "file_input");
var x = ((document.getElementById('uploadImage').getElementsByTagName('p').length));
var fileinput = document.createElement('input');
fileinput.setAttribute("name", "photo" + x);
fileinput.setAttribute("type", "file");
newelement.appendChild(fileinput);
document.getElementById('uploadImage').appendChild(new_element);
}
</script>
Это работает. и он добавляет кнопку в мой div
<div id="uploadImage">
<p>Photo: <input type="file" id="photo" name="photo"/> </p>
</div>
У меня вопрос, какой должен быть сценарий, который, когда я добавляю новую кнопку, будет swfupload. Спасибо и извините за мой английский.
Если я правильно понял ваш вопрос, ваша функция add() должна выглядеть так:
<script>
var uploadButtonCount = 0;
function add() {
var uploadButtonId = "photo" + uploadButtonCount++;
var uploadInput = $('<input id="' + uploadButtonId + '" type="file" name="photo"/>');
$("#uploadImage").append(uploadInput);
uploadInput.makeAsyncUploader({
upload_url: "/Home/AsyncUpload/<%= ViewData["guid"]%>",
flash_url: '/Scripts/swfupload.swf',
button_image_url: '/Content/blankButton.png',
disableDuringUpload: 'INPUT[type="submit"]'
});
}
</script>
Вам необходимо передать новый созданный вход с уникальным идентификатором плагина.