我创建了一个带有文件上传进度条的表单。我正在使用ajaxForm来设置前/后动作。上传过程结束后,我想通过调用“sendEmail.php”生成新的网页并发送电子邮件。问题是我可以看到进度文件达到100%,但之后没有任何反应。它被困在100% 我有两个问题:
我的表单创建行如下所示:
<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";
?>
答案 0 :(得分:0)
这不是一个答案,而是一个扩展的评论...
我们需要知道上传的文件是否实际到达。因此,将其设为upload.php文件的第一行。
file_put_contents('upload_test.txt', print_r($_FILES,true));
我假设您的Web服务器对执行upload.php的目录具有写权限。如果没有,您需要提供一个可以写入的目录的路径。通常,DOCUMENT_ROOT上面的目录可以写入。
如果上传完全失败(没有收到文件),您将看到一个空数组。如果成功,您将看到上传的文件名和一堆其他信息。如果它成功了,问题只是正确处理文件。