IamOverlord
دوشنبه 05 تیر 1391, 15:13 عصر
سلام دوستان...
می خوام یه کد بنویسم برای آپلود فایل، اما درصد انجام کار دیده بشه مثلا داخل یه تگ <p></p>؛
ترجیحا می خوام کارا داخل یه فایل php باشه.
تا یه جایی کدشو نوشتم. اگه می شه کمک کنید تا کامل شه. باید از AJAX استفاده کنم؟ می شه بگید کلا باید چی کار کنم؟ ایده ای دارید؟ توضیحی...؟
فعلا کاربرپسندی کار مهم نیست.
<?php
if (empty($_REQUEST)){
//submit file info and ready to go!
echo '<html>', PHP_EOL;
echo '<head>', PHP_EOL;
echo '<title>upload.php</title>', PHP_EOL;
echo "<script type='text/javascript'>", PHP_EOL;
echo "", PHP_EOL;
echo "", PHP_EOL;
echo "", PHP_EOL;
echo "</script>", PHP_EOL;
echo '</head>', PHP_EOL;
echo '<body>', PHP_EOL;
echo "<form action='upload.php?function=upload' method='get'>", PHP_EOL;
echo "<input type='text' name='url' />", PHP_EOL;
echo "<input type='submit' name='submit' value='Upload' />", PHP_EOL
echo '</form>', PHP_EOL;
echo "<p id='progress'>0</p>", PHP_EOL;
echo '</body>', PHP_EOL;
echo '</html>', PHP_EOL;
}else{
//upload file / get downloading file info
$function = $_REQUEST['function'];
switch($function){
$url = $_REQUEST['url'];
$path_parts = pathinfo($url);
$filename = $path_parts['filename'];
case 'upload':
copy($url,$filename);
break;
case 'getinfo':
$dfilesize = filesize($filename);
$sfilesize = retrieve_remote_file_size($url);
$progress = $dfilesize / $sfilesize * 100;
echo progress;
break;
}
}
function retrieve_remote_file_size($url){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_NOBODY, TRUE);
$data = curl_exec($ch);
$size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
curl_close($ch);
return $size;
}
?>
می خوام یه کد بنویسم برای آپلود فایل، اما درصد انجام کار دیده بشه مثلا داخل یه تگ <p></p>؛
ترجیحا می خوام کارا داخل یه فایل php باشه.
تا یه جایی کدشو نوشتم. اگه می شه کمک کنید تا کامل شه. باید از AJAX استفاده کنم؟ می شه بگید کلا باید چی کار کنم؟ ایده ای دارید؟ توضیحی...؟
فعلا کاربرپسندی کار مهم نیست.
<?php
if (empty($_REQUEST)){
//submit file info and ready to go!
echo '<html>', PHP_EOL;
echo '<head>', PHP_EOL;
echo '<title>upload.php</title>', PHP_EOL;
echo "<script type='text/javascript'>", PHP_EOL;
echo "", PHP_EOL;
echo "", PHP_EOL;
echo "", PHP_EOL;
echo "</script>", PHP_EOL;
echo '</head>', PHP_EOL;
echo '<body>', PHP_EOL;
echo "<form action='upload.php?function=upload' method='get'>", PHP_EOL;
echo "<input type='text' name='url' />", PHP_EOL;
echo "<input type='submit' name='submit' value='Upload' />", PHP_EOL
echo '</form>', PHP_EOL;
echo "<p id='progress'>0</p>", PHP_EOL;
echo '</body>', PHP_EOL;
echo '</html>', PHP_EOL;
}else{
//upload file / get downloading file info
$function = $_REQUEST['function'];
switch($function){
$url = $_REQUEST['url'];
$path_parts = pathinfo($url);
$filename = $path_parts['filename'];
case 'upload':
copy($url,$filename);
break;
case 'getinfo':
$dfilesize = filesize($filename);
$sfilesize = retrieve_remote_file_size($url);
$progress = $dfilesize / $sfilesize * 100;
echo progress;
break;
}
}
function retrieve_remote_file_size($url){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_NOBODY, TRUE);
$data = curl_exec($ch);
$size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
curl_close($ch);
return $size;
}
?>