我有一个表单,可以使用AJAX将图像上传到PHP脚本
这是我的表格
<form action ="upload.php" method = "POST" enctype = "multipart/form-data" class = "form-horizontal" name="formData" id="data">
<!--File Upload-->
<div class = "form-group">
<label class="control-label col-sm-1" for = "file">File:</label>
<div class="col-sm-9">
<input type = "file" name = "image_file" id = "image_file" class = "form-control" accept="image/*" onChange="autoPull(this.value)";>
</div>
</div>
<div class = "form-group">
<label class="control-label col-sm-1" for = "project_name">ProjectName:</label>
<div class="col-sm-9">
<input type = "text" name ="project_name" id = "project_name" class = "form-control" placeholder="Enter Project Name" value = "" required>
</div>
</div>
<div class = "button">
<div class="form-group">
<div class="col-sm-offset-1 col-sm-6">
<input type="submit" name = "submit" class="btn btn-primary" value = "Submit" id="file_upload">
<input type="reset" name = "submit" class="btn btn-default" value = "Reset">
</div>
</div>
</div>
</form>
<br/>
<div class="progress" style="display:none;">
<div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width:0%;">
</div>
</div>
<div id = "result"></div>
结果div是显示PHP输出的位置(请参见AJAX)
进度栏是我希望看到引导进度栏的地方。
这是我的AJAX
$(function () {
$('form#data').submit(function (e){
e.preventDefault();
e.stopImmediatePropagation();
var formData = new FormData($(this)[0]);
var file = $('input[type=file]')[0].files[0];
formData.append('upload_file',file);
$('.progress').show();
$.ajax({
xhr: function() {
var xhr = new window.XMLHttpRequest();
xhr.upload.addEventListener("progress", function(evt) {
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
percentComplete = parseInt(percentComplete * 100);
$('.progress-bar').css('width',percentComplete+"%");
$('.progress-bar').html(percentComplete+"%");
if (percentComplete === 100) {
}
}
}, false);
return xhr;
},
type:'POST',
url: 'upload.php',
data: formData,
async:false,
cache:false,
contentType: false,
processData: false,
success: function (returndata) {
$('#result').html(returndata);
}
});
return false;
});
});
现在,我得到一个输出,向我显示PHP中回显的数据。但是由于某种原因,我无法使进度条正常工作。
可能是什么问题?
去除
async : false;
解决了。但我现在需要看看如何重置标准。
问题内容: 看来我还没有清楚地传达出我的问题。我需要发送一个文件(使用AJAX),并且需要使用Nginx HttpUploadProgressModule 获取文件的上传进度。我需要一个很好的解决方案。我已经尝试过使用jquery.uploadprogress插件,但是我发现自己不得不重写其中的大部分内容,以使其在所有浏览器中都能正常工作并使用AJAX发送文件。 我所需要的只是执行此操作的代码,它
问题内容: 我敢肯定这已经被问过了,但是由于我似乎找不到一个好的答案,我在这里再次问…。:) 是否可以仅使用HTML,JavaScript / AJAX和PHP的组合来报告文件上载的实际进度? 回复任何提出SWFUpload或类似建议的人: 我都知道 走那条路。我正在寻找100%纯净的解决方案(是的,我知道我可能不会得到它)。 问题答案: 如果您能够将PECL软件包添加到PHP中,则有upload
问题内容: 我非常了解Javascript,AJAX和JQuery等,并且我相信可以使用PHP,AJAX和Javascript等创建上传进度栏。 我很惊讶如何获得上传的大小(意思是我想知道的每一秒,上传了多少文件,还有多少剩余,我认为应该可以使用AJAX等)文件正在上传中。 这是PHP手册的链接,但我不明白: http //php.net/manual/en/session.upload- pro
问题内容: 我希望在用户使用$ .ajax在输入文件中选择文件时异步上传文件。但是接收调用返回索引的PHP未定义。jQuery代码是下一个: 以及调用该调用的php: 谢谢 问题答案: 您无法使用AJAX上传文件,但可以使用,因此不必刷新当前页面。 很多人都对插件束手无策,但您可以轻松完成此操作,并具有AJAX请求的所有功能。 不必使用AJAX函数,而是将表单提交到具有事件处理程序的隐藏文件中,以
问题内容: 我在stackoverflow和普通的Internet上都看过,找不到一个简单的AJAX文件上传器(仅表单提交)。我发现的那些不够灵活,不符合我的目的。如果我可以将此脚本用于文件上传,那就太好了: 在HTML中,我将拥有 谢谢 问题答案: 这是一个简单的ajax文件上传器 上载 如果您不想使用闪光灯,则可以使用此闪光灯。 AxUploader
本文向大家介绍PHP+Ajax异步带进度条上传文件实例,包括了PHP+Ajax异步带进度条上传文件实例的使用技巧和注意事项,需要的朋友参考一下 最近项目中要做一个带进度条的上传文件的功能,学习了Ajax,使用起来比较方便,将几个方法实现就行。 前端引入文件 Ajax进度条异步处理 前端上传HTML PHP文件上传类 文件上传效果如图: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多