размер на файла

Pe0pl3

Registered
искам като добавям файливе в базата дани да се записват в полето
"size" какв код да сложа ?
 
filesize($file); и ще го върне в байтове :)
после на изкарване го делиш на 1024 няколко пъти ;)
 
Код:
<input type='hidden' value='koda za golemina na faila'>
ПП: само да добавя че фаийлат е то линк :?
 
Всъщност пробвах тази функция и тръгна.
Код:
    function remotefsize($url) {
        $sch = parse_url($url, PHP_URL_SCHEME);
        if (($sch != "http") && ($sch != "https") && ($sch != "ftp") && ($sch != "ftps")) {
            return false;
        }
        if (($sch == "http") || ($sch == "https")) {
            $headers = get_headers($url, 1);
            if ((!array_key_exists("Content-Length", $headers))) { return false; }
            return $headers["Content-Length"];
        }
        if (($sch == "ftp") || ($sch == "ftps")) {
            $server = parse_url($url, PHP_URL_HOST);
            $port = parse_url($url, PHP_URL_PORT);
            $path = parse_url($url, PHP_URL_PATH);
            $user = parse_url($url, PHP_URL_USER);
            $pass = parse_url($url, PHP_URL_PASS);
            if ((!$server) || (!$path)) { return false; }
            if (!$port) { $port = 21; }
            if (!$user) { $user = "anonymous"; }
            if (!$pass) { $pass = "phpos@"; }
            switch ($sch) {
                case "ftp":
                    $ftpid = ftp_connect($server, $port);
                    break;
                case "ftps":
                    $ftpid = ftp_ssl_connect($server, $port);
                    break;
            }
            if (!$ftpid) { return false; }
            $login = ftp_login($ftpid, $user, $pass);
            if (!$login) { return false; }
            $ftpsize = ftp_size($ftpid, $path);
            ftp_close($ftpid);
            if ($ftpsize == -1) { return false; }
            return $ftpsize;
        }
    }
 
обясними как дая вмукна в

Код:
<form method="post" action="">
Име <br /><input name="name" type="text" size="30" /><br />
Size <br /><input name="size" type="text" size="30" /><br />
Crav<br /><input name="crav" type="text" size="30" /><br />
info <br /><input name="opisanie" type="text" size="30" /><br />
instal <br /><input name="how" type="text" size="30" /><br />
link <br /><input name="link" type="text" size="30" /><br />
 
author <br /><input name="author" type="text" size="30" /><br />
<br /><br />
<input name="submit" type="submit" value="Добави" />
</form>
<?php
include("config.php");
if($_POST['submit'])
{
$name = htmlspecialchars(addslashes($_POST['name']));
$size = htmlspecialchars(addslashes($_POST['size']));
$crav = htmlspecialchars(addslashes($_POST['crav']));
$opisanie = htmlspecialchars(addslashes($_POST['opisanie']));
$how = htmlspecialchars(addslashes($_POST['how']));
$link = htmlspecialchars(addslashes($_POST['link']));
$author = htmlspecialchars(addslashes($_POST['author']));
if(empty($name) || empty($size))
{
echo 'Има празно поле';
}
else
{
$sql = mysql_query("INSERT into `plugins` (`id`,`name`,`size`,`crav`,`opisanie`,`how`,`link`,`dl`,`author`) VALUES ('','$name','$size','$crav','$opisanie','$how','$link','$dl','$author')") or die(mysql_error());
if($sql) { echo "Пплъгинът е добавена"; }
}
}
?>
 
Пробвай това:
Код:
<?php
function preobr($var) {
    $i=0;
    while (floor($var) > 0) {
        $var = $var / 1024;
        $i++;
    }
    $var = $var * 1024;
    if ($i == 1 || $var == 0) { $type = "B"; }
    if ($i == 2) { $type = "KB"; }
    if ($i == 3) { $type = "MB"; }
    if ($i == 4) { $type = "GB"; }
    if ($i == 5) { $type = "TB"; }
    $var = round($var,2);
    return $var." ".$type;
}


function remotefsize($url) {
    $sch = parse_url($url, PHP_URL_SCHEME);
    if (($sch != "http") && ($sch != "https") && ($sch != "ftp") && ($sch != "ftps")) {
        return false;
    }
    if (($sch == "http") || ($sch == "https")) {
        $headers = get_headers($url, 1);
        if ((!array_key_exists("Content-Length", $headers))) { return false; }
        return $headers["Content-Length"];
    }
    if (($sch == "ftp") || ($sch == "ftps")) {
        $server = parse_url($url, PHP_URL_HOST);
        $port = parse_url($url, PHP_URL_PORT);
        $path = parse_url($url, PHP_URL_PATH);
        $user = parse_url($url, PHP_URL_USER);
        $pass = parse_url($url, PHP_URL_PASS);
        if ((!$server) || (!$path)) { return false; }
        if (!$port) { $port = 21; }
        if (!$user) { $user = "anonymous"; }
        if (!$pass) { $pass = "phpos@"; }
        switch ($sch) {
            case "ftp":
            $ftpid = ftp_connect($server, $port);
            break;
            case "ftps":
            $ftpid = ftp_ssl_connect($server, $port);
            break;
        }
        if (!$ftpid) { return false; }
        $login = ftp_login($ftpid, $user, $pass);
        if (!$login) { return false; }
        $ftpsize = ftp_size($ftpid, $path);
        ftp_close($ftpid);
        if ($ftpsize == -1) { return false; }
        return $ftpsize;
    }
}
?>

<form method="post" action="">
Име <br /><input name="name" type="text" size="30" /><br />
Crav<br /><input name="crav" type="text" size="30" /><br />
info <br /><input name="opisanie" type="text" size="30" /><br />
instal <br /><input name="how" type="text" size="30" /><br />
link <br /><input name="link" type="text" size="30" /><br />
 
author <br /><input name="author" type="text" size="30" /><br />
<br /><br />
<input name="submit" type="submit" value="Добави" />
</form>
<?php
include("config.php");
if($_POST['submit'])
{
$name = htmlspecialchars(addslashes($_POST['name']));
$crav = htmlspecialchars(addslashes($_POST['crav']));
$opisanie = htmlspecialchars(addslashes($_POST['opisanie']));
$how = htmlspecialchars(addslashes($_POST['how']));
$link = htmlspecialchars(addslashes($_POST['link']));
$author = htmlspecialchars(addslashes($_POST['author']));

$file_size = remotefsize($link);
$size_out = (is_array($file_size)) ? preobr($file_size[4]) : preobr($file_size);

if(empty($name) || empty($size))
{
echo 'Има празно поле';
}
else
{
$sql = mysql_query("INSERT into `plugins` (`id`,`name`,`size`,`crav`,`opisanie`,`how`,`link`,`dl`,`author`) VALUES ('','$name','$size_out','$crav','$opisanie','$how','$link','$dl','$author')") or die(mysql_error());
if($sql) { echo "Пплъгинът е добавена"; }
}
}
?>

EDIT: Забравих да спомена, че полето "size" в таблицата трябва да бъде тип varchar.
 
начии в базата дани има таблица link в нея слагам линка а в таблицата size
би трябвало да се запамениголемината на фаила
 
Pe0pl3 каза:
начии в базата дани има таблица link в нея слагам линка а в таблицата size
би трябвало да се запамениголемината на фаила
Да, но въпроса е какъв линк добавяш.
Трябва да е директен към файла.
 
Код:
<?php
function getRemoteFileSize($url){
   $parsed = parse_url($url);
   $host = $parsed["host"];
   $fp = @fsockopen($host, 80, $errno, $errstr, 20);
   if(!$fp)return false;
   else {
       @fputs($fp, "HEAD $url HTTP/1.1\r\n");
       @fputs($fp, "HOST: $host\r\n");
       @fputs($fp, "Connection: close\r\n\r\n");
       $headers = "";
       while(!@feof($fp))$headers .= @fgets ($fp, 128);
   }
   @fclose ($fp);
   $return = false;
   $arr_headers = explode("\n", $headers);
   foreach($arr_headers as $header) {
       $s = "Content-Length: ";
       if(substr(strtolower ($header), 0, strlen($s)) == strtolower($s)) {
           $return = trim(substr($header, strlen($s)));
           break;
       }
   }
    if($return){
              $size = round($return / 1024, 2);
              $sz = "KB"; // Size In KB
        if ($size > 1024) {
            $size = round($size / 1024, 2);
            $sz = "MB"; // Size in MB
        }
        $return = "$size $sz";
   }
   return $return;
} 
?>
<form method="post" action="">
Име <br /><input name="name" type="text" size="30" /><br />
Crav<br /><input name="crav" type="text" size="30" /><br />
info <br /><input name="opisanie" type="text" size="30" /><br />
instal <br /><input name="how" type="text" size="30" /><br />
link <br /><input name="link" type="text" size="30" /><br />
 
author <br /><input name="author" type="text" size="30" /><br />
<br /><br />
<input name="submit" type="submit" value="Добави" />
</form>
<?php
include("config.php");
if($_POST['submit'])
{
$name = htmlspecialchars(addslashes($_POST['name']));
$crav = htmlspecialchars(addslashes($_POST['crav']));
$opisanie = htmlspecialchars(addslashes($_POST['opisanie']));
$how = htmlspecialchars(addslashes($_POST['how']));
$link = htmlspecialchars(addslashes($_POST['link']));
$author = htmlspecialchars(addslashes($_POST['author']));

$file_size = getRemoteFileSize($_POST['link']);

if(empty($name) || empty($size))
{
echo 'Има празно поле';
}
else
{
$sql = mysql_query("INSERT into `plugins` (`id`,`name`,`size`,`crav`,`opisanie`,`how`,`link`,`dl`,`author`) VALUES ('','$name','$file_size','$crav','$opisanie','$how','$link','$dl','$author')") or die(mysql_error());
if($sql) { echo "Пплъгинът е добавена"; }
}
}
?>
така? :)
 

Back
Горе