【发布时间】:2017-08-01 19:36:03
【问题描述】:
我创建了一个带有文件上传进度条的表单。我正在使用 ajaxForm 来设置前/后操作。上传过程结束后,我想生成一个新网页并通过调用“sendEmail.php”发送电子邮件。问题是我可以看到进度文件达到 100%,但之后没有任何反应。它卡在 100% 我有两个问题:
- 当我对此进行测试时,我注意到缺少“UPLOAD.php”操作,但我看到了一个与文件大小成正比的进度条。 这是为什么?上传文件是什么?
- 当我添加 UPLOAD.php 时,它仍然无法正常工作。
我的表单创建行如下所示:
<form id="formmail" class="form-horizontal col-xs-6 col-sm-6 col-md-4 col-sm-offset-1" name="formmail" method="POST" action="**UPLOAD.php**" enctype="multipart/form-data">
我的生成进度条的脚本:
var progress
$(document).ready(function() {
$("#submit").click(function(){
$("#formmail").ajaxForm({
type: "POST",
url: "sendEmail.php",
beforeSend: function() {
$("#progressBar").removeClass("hidden");
progress = "0%";
$('.progress-bar').css("width", progress);
$('.progress-bar').html(progress);
},
uploadProgress: function (event, position, total, percentComplete) {
progress = percentComplete + "%";
$('.progress-bar').css("width", progress);
$('.progress-bar').html(progress);
},
success: function (data){
alert("It's OK!");
},
}).submit();
});
});
上传文件的PHP,本例只上传。文件正常后我会移动它。
<?php
if(isset($_POST) && !empty($_FILES['fileatt']['name'])){
$tmp = $_FILES['fileatt']['tmp_name'];
echo "echo something";
?>
【问题讨论】:
-
当您不为表单设置操作时,它默认为当前网页。无论该页面是否可以处理文件都会上传,这就是您根据文件大小看到进度的原因。
$_FILES的print_r()结果是什么?要查看它,您可能需要file_put_contents数据(记得将print_r()的第二个参数设置为true,否则数据将不会保存到文件中。 -
谢谢你,我是新手 - 请你说得更具体一些,也许是一个简短的例子?