Можно проверить, выполняете ли Вы версию 4.0.4 Jboss или версию 4.2.2. Вы могли бы получить эту ошибку, когда Вы установили Jboss 4.2.2, но настроили Jboss 4.0.4 в Eclipse.
Мы реализовали это очень просто, установив расширение PECL pecl-uploadprogress
и добавив простой AJAX callback в формы:
Генерируем ключ загрузки:
$upload_id = genUploadKey();
function genUploadKey ($length = 11) {
$charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
for ($i=0; $i < $length; $i++)
$key .= $charset[(mt_rand(0,(strlen($charset)-1)))];
return $key;
}
Создаем обработчик AJAX callback (например. uploadprogress.php):
extract($_REQUEST);
// servlet that handles uploadprogress requests:
if ($upload_id) {
$data = uploadprogress_get_info($upload_id);
if (!$data)
$data['error'] = 'upload id not found';
else {
$avg_kb = $data['speed_average'] / 1024;
if ($avg_kb<100)
$avg_kb = round($avg_kb,1);
else if ($avg_kb<10)
$avg_kb = round($avg_kb,2);
else $avg_kb = round($avg_kb);
// two custom server calculations added to return data object:
$data['kb_average'] = $avg_kb;
$data['kb_uploaded'] = round($data['bytes_uploaded'] /1024);
}
echo json_encode($data);
exit;
}
// display on completion of upload:
if ($UPLOAD_IDENTIFIER) {
...
Скачайте jQuery и библиотеку jQuery.uploadprogress (которая также включает в себя приведенный выше фрагмент) и интегрируйте в вашу форму:
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="jquery.uploadprogress.0.3.js"></script>
<script type="text/javascript">
jQuery(function () {
// apply uploadProgress plugin to form element
// with debug mode and array of data fields to publish to readout:
jQuery('#upload_form').uploadProgress({
progressURL:'uploadprogress.php',
displayFields : ['kb_uploaded','kb_average','est_sec'],
start: function() {
$('.upload-progress').show();
},
success: function() {
$('.upload-progress').hide();
jQuery(this).get(0).reset();
}
});
});
</script>
Добавьте это в вашу форму загрузки:
<input name="UPLOAD_IDENTIFIER" type="hidden" value="$upload_id" />
Это должно помочь. Это извлечено из нашей базы кода и может не работать из коробки. Но это должно подсказать вам идею.
jquploader использует информацию внутри формы, такую как значение атрибута действия как сценарий загрузки. Но я не обновлял его некоторое время, и в нем отсутствуют все сценарии поясов и свистков, такие как uploadify (который, кстати, отличный сценарий). Посмотрим, может ли это быть основой для настройки.
t обновил его через некоторое время, и в нем отсутствуют все сценарии поясов и свистков, такие как uploadify (который, кстати, отличный сценарий). Посмотрим, может ли это быть основой для настройки. t обновил его через некоторое время, и в нем отсутствуют все сценарии поясов и свистов, такие как uploadify (который, кстати, отличный сценарий). Посмотрим, может ли это быть основой для настройки.Спасибо Шону, что заставил меня осознать полный идиотизм этого вопроса. Позвольте мне быть примером для других, чтобы не прыгать в завершающий поезд.
Шон указал, что «copy-paste можно сделать с помощью встроенной функциональности cmd.exe», что заставляет меня признать, что, да, абсолютно duh, когда вы запускаете приложение командной строки в Windows он уже имеет эту функциональность доступна.
Я ошибся, перескочив к выводам, потому что я делал все свое первоначальное тестирование с выполнением DEBUG через IDE, и vshost не дает вам эту функциональность.
Быстрый «Запуск без отладки» показал мою недальновидность.
-121--1233957- Я использую модуль «Искра» и модуль просмотра по умолчанию. Здесь не так много дел. Необходимо зарегистрировать SparkViewFactory, позвонив по телефону ViewEngines.Engines.Add ()
, и Spark обработает файлы * .spark, а обработчик представлений по умолчанию (WebFormViewEngine) будет обрабатывать старые представления. Не удаляйте обработчик веб-форм из списка ViewEngines.Engine.
Если вы используете PHP 5.2 и увеличиваете размер файла , руководство по загрузке компании IBM поможет вам.
В руководстве по отправке нескольких файлов используется jQuery + AJAX Upload ... Он использует $ _ FILES на стороне сервера и преобразует специальный < div > на стороне клиента, чтобы создать < form >. Думаю, вы можете подправить его, чтобы соответствовать вашим потребностям.
Если настройка последней слишком сложна, Uber-Uploader на SourceForge является другой опцией.
Существуют десятки проектов с открытым исходным кодом, охватывающих эту тему. К сожалению, это не является чем-то тривиальным для прозрачной реализации (по крайней мере, в путь вы хотите - иначе мы бы увидели это в старые добрые дни Netscape).
На яркой стороне, HTML5 облегчит это, как вы можете видеть в этой демонстрации и этой .
Надеюсь, это поможет и удача с вашей интеграцией.
Как забавно, я только что видел блог Саймона Уиллисона о Plupload, который является библиотекой JavaScript, которая, как я думаю, делает прогресс-бары загрузки файлов (среди прочего).
Она использует Flash, Silverlight, или что там есть, но я думаю, что абстрагирует все это от вас, так что вы все равно загружаете файл с помощью обычной HTML-формы.
Вам нужно будет проверить размер части файла, который уже находится на сервере, а затем получить его на клиенте через Ajax, где вы можете нарисовать индикатор выполнения. (Не забудьте проверить размер данных отверстия перед тем, как рассчитать процентное соотношение ;-) )