Это работает, если Flash не установлен, а Flash установлен, но отключен.Я только подтвердил это в IE7-9 и FF19, но должен работать в любом браузере, который может использовать Uploadify SWF-версию.
В html есть 2 деления.Один без Flash и с Flash
<div id="uploadifyDiv" runat="server" style="float: left; width: 100%; margin-top: 10px;">
<div id="uploadifyNoFlashDiv">
<p style="font-weight:bold; background-color:Red; color:Black;">Flash is not installed or is not enabled</p>
File upload requires Flash to be installed and enabled.<br />
Click <a href="http://get2.adobe.com/flashplayer/" target="_blank">here</a> to install<br />
You will need to <a href="javascript:window.location.href=window.location.href">refresh</a> the page when installation is completed</p>
</div>
<div id="uploadifyHasFlashDiv" style="display:none;">
<asp:FileUpload ID="ImageFileUpload" runat="server" />
</div>
</div>
В сценарий Uploadify включите функцию для onInit
onInit : function(instance) {
$('[id$="uploadifyNoFlashDiv"]').css('display','none');
$('[id$="uploadifyHasFlashDiv"]').css('display','block');},
Если Flash не установлен или не установлен, но не включен, то uploadifyNoFlashDivбудет показан div, в противном случае OnInit скроет div uploadifyNoFlashDiv и покажет div uploadifyHasFlashDiv, который, при условии, что все остальное в порядке, отобразит элемент управления Uploadify.
Это, конечно, не предоставляет никаких функциональных возможностей, если пользователь не устанавливает Flash, но делает это по крайней мере
- Покажите соответствующее сообщение, сообщающее, что ему необходимо установить Flash (или включить его, если он уже установлен)
- скрыть общий FileUpload, который появляется в случае сбоя сценария Uploadify.
IMHO Uploadify по-прежнему превосходит другие загрузчики, упомянутые в качестве альтернативы, поскольку он единственный, который обеспечивает выбор нескольких файлов в браузерах, отличных от HTML5, что, к сожалению, включаетIE9 на Win7.Все остальные загрузчики позволяют выбирать только один файл в диалоге файлов.
РЕДАКТИРОВАТЬ: На медленных соединениях Div без установленного Flash будет отображаться до того, как скрипт Uploadify сможет запустить, что вводит в заблуждение пользователя, если у него установлен Flash, и div в конечном итоге будет скрыт.В этом сценарии добавьте еще один div с загрузочным gif в нем, а затем запустите некоторый скрипт при загрузке документа, чтобы показать соответствующий div.
<div id="uploadifyDiv" runat="server" style="float: left; width: 100%; margin-top: 10px;">
<div id="uploadifyNoFlashDiv" runat="server" class="infoBoxDiv" style="display: block;">
<div id="uploadifyNoFlashLoadingDiv" style="display:block">
<img src="../images/uploading.gif" alt="Loading ..." /> Loading. Please wait a moment ...
</div>
<div id="uploadifyNoFlashFinalDiv" style="display:none;">
<p style="font-weight: bold; background-color: Red; color: Black;">
Flash is not installed or is not enabled</p>
<p>
File upload requires Flash to be installed and enabled.<br />
Click <a href="http://get2.adobe.com/flashplayer/" target="_blank">here</a> to install<br />
You will need to <a href="javascript:window.location.href=window.location.href">refresh</a>
the page when installation is completed
</p>
</div>
</div>
<div id="uploadifyHasFlashDiv" runat="server" style="display: none;">
<asp:FileUpload ID="ImageFileUpload" runat="server" />
</div>
</div>
<script language="javascript" type="text/javascript">
// If the NoFlashDiv is still visible then hide the loading gif and show the info box
// Otherwise leave alone and the Uploadify script will do its thing
$(document).ready(function() {
if ($('[id$="uploadifyNoFlashDiv"]').css('display') == 'block')
{
$('[id$="uploadifyNoFlashLoadingDiv"]').css('display','none');
$('[id$="uploadifyNoFlashFinalDiv"]').css('display','block');
}
});
</script>