0

jQuery や PHP 経由でアップロードされたファイルの進行状況を表示する機能を追加するにはどうすればよいでしょうか?

現在、次のコードがあります。理想的には、CSS を使用してサイズが大きくなった画像の進行状況バーを表示し、アップロードが完了するようにしたいと考えています。

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function () {

    $("#formsubmit").click(function () {

var iframe = $('<iframe name="postiframe" scr="http://www.google.co.uk" id="postiframe" style="display: none" />');

$("body").append(iframe);

var form = $('#theuploadform');
form.attr("action", "ddd.php");
form.attr("method", "post");
form.attr("enctype", "multipart/form-data");
form.attr("encoding", "multipart/form-data");
form.attr("target", "postiframe");
form.attr("file", $('#userfile').val());
form.submit();

$("#postiframe").load(function () {
    iframeContents = $("#postiframe")[0].contentWindow.document.body.innerHTML;
    $("#textarea").html(iframeContents);
});

return false;

});

});
</script>

<form id="theuploadform" method="post" enctype="multipart/form-data">
<input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="123" />
<input id="userfile" name="userfile[]" size="50" type="file" multiple />
<input id="formsubmit" type="submit" value="Send File" />
</form>

<div id="textarea"></div>

乾杯 ;)

4

1 に答える 1

0

ajax を使用する場合にのみプログレス バーを追加できますが、ajax ファイルのアップロードは IE および古い FF バージョンではサポートされていません。

したがって、サポートされていない場合は、プログレス バーのない iframe を使用する必要があります。そのため、多くの人がそのための優れた回避策を作成しました。jQuery のアップローダ プラグインの名前の一部をここに示します。

プラグインなしで自分で行うこともできますが、jQuery 1.5.1 以降ではネイ​​ティブ XHR オブジェクトにアクセスできないため、jQuery ajax 関数を使用することはできません。

于 2012-04-21T15:23:58.633 に答える