【发布时间】:2015-11-19 03:28:45
【问题描述】:
首先,我希望每个人都明白,我确实查看了 stackoverflow 上的所有其他示例,但根本没有一个对我有用。我想要做的是创建一个进度条,显示文件已上传到 100%。我有 3 个脚本:包含表单的 upload.php、用于上传文件的脚本 fileUpload.php 和包含 jQuery AJAX 代码的 script.js。
似乎没有任何效果。使用我下面的代码,Ajax 返回一条成功消息,但是进度条没有改变,没有任何内容上传到文件夹,文件本身保留在文件输入中。问题在于 script.js 中的 ajax 代码,因为我可以在没有 ajax 代码的情况下上传文件。
/* upload.php
--------------------------------------------------------*/
<div class="form-wrapper">
<form method="post" id="uploadForm" action="fileUpload.php" role="form" enctype="multipart/form-data">
<legend>Upload</legend>
<div class="form-group">
<label for="fileUpload">File</label>
<input type="file" id="fileUpload" name="fileUpload"/>
</div>
<button type="submit" id="uploadBtn" class="btn btn-success">Submit</button>
</form>
<br>
<div id="progress" class="progress">
<div id="progress-bar" class="progress-bar progress-bar-striped active" role="progressbar"
aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width:0%">
</div>
</div>
<span id="sr-only"></span>
</div>
/* fileUpload.php
--------------------------------------------------------*/
<?php
if ($_FILES['fileUpload']['size'] != 0) {
$name = $_FILES['fileUpload']['name'];
$data = $_FILES['fileUpload']['tmp_name'];
$fileDir = "C:\\wamp\\www\\Business\\Images\\$name";
move_uploaded_file($data, $fileDir);
}
?>
/* script.js
--------------------------------------------------------*/
$(document).ready(function() {
$("#progress").hide();
$("#uploadForm").on('submit', function(e){
e.preventDefault();
var $form = $(this);
$.ajax({
type: $form.attr('method'),
url: $form.attr('action'),
data: $form.serialize(),
beforeSend:function() {
$("#progress").show();
},
uploadProgress:function(event, position, total, percentageComplete) {
$("#progress-bar").attr("value", percentageComplete);
$("#progress-bar").width(percentageComplete + "%");
},
success:function() {
$("#sr-only").html("Success");
}
});
});
});
【问题讨论】:
-
如果我错了,请纠正我,但根据api.jquery.com/jquery.ajax,
jQuery.ajax没有uploadProgress属性。 -
@GuruprasadRao 为什么不标记为重复?
-
@Mike 是的,对不起.. 我应该这样做,但在给出建议后忘记了.. 完成标记... :)
标签: javascript php jquery ajax file-upload