ホームページ > 記事 > ウェブフロントエンド > Ajax でファイルをアップロードし、ファイル アップロード プロセスの進行状況バーを表示するコード
この記事の内容は、Ajax によるファイルのアップロードと、ファイルのアップロード処理の進行状況バーの表示に関するコードです。必要な方は参考にしていただければ幸いです。
最近 ASP.NET MVC を学習していて、たまたまファイルをアップロードして記録しました。
jQuery に加えて、フロントエンドは Bootstrap と Layer も使用します。
HTML ページのフォーム:
<form class="form-horizontal" id="vform" action=""> <div class="form-group"> <label class="col-sm-3 control-label">资源名称:</label> <div class="col-sm-8"> <input name="name" type="text" class="form-control" id="name" /> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">请选择本地资源:</label> <div class="col-sm-8"> <input name="file" type="file" class="form-control" id="file" /> <div class="progress"> <div class="progress-bar" id="progress-bar"></div> </div> </div> </div> <div class="form-group"> <div class="col-sm-4 col-sm-offset-3"> <input class="btn btn-primary" id="submit" value="确认上传" /> </div> </div> </form>
JavaScript コード:
<script> $("#submit").click(function () { var formData = new FormData(document.getElementById("vform")); $.ajax({ type: "POST", url: "@Url.Action("DoAdd")", data: formData, processData: false, contentType: false, error: function (data) { layer.msg('上传失败', { icon: 2, time: 1000 //1秒关闭(如果不配置,默认是3秒) }); }, success: function (data) { if (data.code == 1) { layer.msg('上传成功', { icon: 1, time: 1000 //1秒关闭(如果不配置,默认是3秒) }, function () { parent.location.reload(); }); } else { layer.msg(data.msg, { icon: 2, time: 1000 //1秒关闭(如果不配置,默认是3秒) }); } }, xhr: function () { myXhr = $.ajaxSettings.xhr(); if (myXhr.upload) { //检查upload属性是否存在 //绑定progress事件的回调函数 myXhr.upload.addEventListener('progress', progressHandlingFunction, false); } return myXhr; //xhr对象返回给jQuery使用 } }); }); function progressHandlingFunction(event) { var loaded = Math.floor(100 * (event.loaded / event.total)); //已经上传的百分比 $("#progress-bar").html(loaded + "%").css("width", loaded + "%"); }</script>
関連推奨事項:
小さな画像をクリックして大きな画像を表示する効果を実現するために js はどのように動作しますか画像? (コード例)
以上がAjax でファイルをアップロードし、ファイル アップロード プロセスの進行状況バーを表示するコードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。