我正在尝试在上传文件时创建上传进度条。
这是我的一部分:
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
$root = '/users/'.$UserName.'/';
if (!is_dir($root))
{
@mkdir('users/'.$UserName, 0777);
if (($_FILES["file"]["size"] < $MaxUploadSize) && in_array($extension, $allowedExts))
{
echo 'upload successful';
$data = explode(".",$_FILES["file"]["name"]);
$newfilename = $realname;
move_uploaded_file($_FILES["file"]["tmp_name"], 'users/'.$UserName.'/' . $newfilename);
}
else
{
echo '<span class="failed">Upload failed!</span>';
}
}
} // endif SERVER REQUEST
对于进度条,我使用此javascript:
var bar = $('.bar');
var percent = $('.percent');
var status = $('#status');
$('#sfmform').ajaxForm({
beforeSend: function() {
status.empty();
var percentVal = '0%';
bar.width(percentVal)
percent.html(percentVal);
},
uploadProgress: function(event, position, total, percentComplete) {
var percentVal = percentComplete + '%';
bar.width(percentVal)
percent.html(percentVal);
},
success: function() {
var percentVal = '100%';
bar.width(percentVal)
percent.html(percentVal);
},
});
结合:http://malsup.github.com/jquery.form.js
我的表单如下:
<form id="sfmform" action="" method="post" enctype="multipart/form-data">
<input type="file" name="file" id="file" multiple"" />
<br />
<input type="submit" class="Button Primary" name="submit" value="Upload">
<br /><br />
</form>
进度条工作正常,但是没有显示php echo,无论它们是成功还是失败。没有js,回声工作正常!
我做错了什么?
答案 0 :(得分:0)
我认为你必须在成功回电中收到回复:
success: function(data) {
alert(data);
var percentVal = '100%';
bar.width(percentVal)
percent.html(percentVal);
}
答案 1 :(得分:0)
使用变量检查上传是否成功,然后在html
的正文中检查该值<强> PHP 强>
$check=0;
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
//php code
if (($_FILES["file"]["size"] < $MaxUploadSize) && in_array($extension, $allowedExts))
{
$check=1;
}
}
<强> HTML 强>
<html>
<body>
<!-- place your form -->
<?php if ($check==1)
{
echo "Upload Successful";
}
?>
</body>
</html>