2016-04-25 9 views
1

ファイルのアップロード中にアップロードプログレスバーを作成しようとしています。PHPでファイルアップロード中にアップロードプログレスバーを作成する方法

これはPHPの私の一部です:進行バーの

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エコーは表示されません。 jsがなければ、エコーは正常に動作します!

私は間違っているのですか?

+0

タグ –

+0

いいえ、私はこの仕事をして、私のPHPファイル –

答えて

0

私はあなたがあなたの成功のコールバックでの応答を受信する必要があると思う:

success: function(data) { 
    alert(data); 
    var percentVal = '100%'; 
    bar.width(percentVal) 
    percent.html(percentVal); 

} 
+0

にHTMLタグを使用していないが、彼、彼はページの完全なHTMLを警告内のあなたのPHPファイルです。エコー –

+0

だけでなく、 'echo'の直後に' exit'が必要なので、さらなる出力のレンダリングを止めます。 – hmd

+0

あなたは正しいです。今それは素晴らしい作品です!ソリューションをありがとう –

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> 
+0

これがうまくいかない場合は教えてください –

+0

私はこれを試しましたが、結果はありません:エコーは表示されません –

関連する問題