Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

FilesizeAngabe wird nicht angezeigt :(

Diskussion: FilesizeAngabe wird nicht angezeigt :( im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Webspace: cybton.com ---------------------------------- hi, ich möchte gern, dass mir PHP automatisch die Größe der verlinkten Bilder anzeigt. Dazu hab ...

Antwort
Alt 03.10.05, 23:43   #1 (permalink)
 
Registriert seit: 08.10.03
freakazoid Leistung: Facit NTK
Likes: 0
Standard FilesizeAngabe wird nicht angezeigt :(

Anzeige

Webspace: cybton.com
----------------------------------

hi,

ich möchte gern, dass mir PHP automatisch die Größe der verlinkten Bilder anzeigt.
Dazu hab ich folgendes Skript, welches ich im <head>-Bereich der HTML-Datei eingefügt habe:

PHP-Code:
<?php
function get_size($url) {
    
$head "";
    
$url_p parse_url($url);
    
$host $url_p["host"];
    
$path $url_p["path"];

    
$fp fsockopen($host80$errno$errstr20);
    if(!
$fp) {
        return 
$errstr;
    } else {
        
fputs($fp"HEAD ".$url." HTTP/1.1\r\n");
        
fputs($fp"HOST: dummy\r\n");
        
fputs($fp"Connection: close\r\n\r\n");
        while (!
feof($fp)) {
            
$head .= sprintf("%s%s"$ourheadfgets ($fp128));
        }
    }
    
fclose ($fp);
    
$head explode("\n"$head);
    foreach(
$head as $h) {
        
$s "Content-Length: ";
        if(
substr($h0strlen($s)) == $s) {
            
$size substr($hstrlen($s));
            break;
        }
    }
    return 
$size;
}
?>
Im <Body>-Tag ist dann folgendes zufinden.
PHP-Code:
<?php echo get_size("http://xxx/test/bild2.jpg"); ?>
Aber leider funktioniert es nicht. Da wo die Größe der Datei stehen sollte steht gar nichts.
Woran liegt das. Was muss ich ändern? Danke
freakazoid ist offline   Mit Zitat antworten
Alt 04.10.05, 13:14   #2 (permalink)
 
Benutzerbild von BasicAvid
 
Registriert seit: 17.03.04
BasicAvid Leistung: Facit NTK
Likes: 2
Standard

Hab mir das Script mal angeschaut! Es funzt, bis auf ein paar kleinigkeiten.

1)Hast Du das Script nur Lokal getestet? Wenn ja eine gültige Adresse angegeben?
Lokal ging es bei mir einwandfrei.

2)Hast Du das Script schonmal mit einer gültigen Webadresse gefüttert? Da bekommst nämlich gleich eine Fehlermeldung, "Connection Timeout..."
__________________
Mfg Basic Avid
- Use it or be used! -
BasicAvid ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 04.10.05, 14:02   #3 (permalink)
Themenstarter
 
Registriert seit: 08.10.03
freakazoid Leistung: Facit NTK
Likes: 0
Standard

hi BasicAvid,

Lokal funzt das einwandfrei. Cybton.com hat wahrscheinlich "fsockopen" deaktiviert.
Weißt du vllt einen Webspace-Anbieter der es aktiviert hat oder eine andere Möglichkeit die Größen der Dateien auszugeben. danke
freakazoid ist offline   Mit Zitat antworten
Alt 04.10.05, 17:37   #4 (permalink)
 
Benutzerbild von BasicAvid
 
Registriert seit: 17.03.04
BasicAvid Leistung: Facit NTK
Likes: 2
Standard

Du hast ja Zugriff auf die Dateien oder?
Wenn ja kannst Du das ganze mit der Funktion filesize() auslesen, die liefert Dir nämlich die Größe einer Datei in Bytes!

Was genau willst Du eigentlich machen?
__________________
Mfg Basic Avid
- Use it or be used! -
BasicAvid ist offline   Mit Zitat antworten
Alt 04.10.05, 18:32   #5 (permalink)
Themenstarter
 
Registriert seit: 08.10.03
freakazoid Leistung: Facit NTK
Likes: 0
Standard

Zugriff hab ich, ja.
Hab das hier noch ausprobiert. Klappt aber auch nicht und nur filesize() klappt auch nicht bei cybton.com. Ich werd die Tage mal den Webspace wechseln. Mal schauen, wie es dann dort aussieht. Was ich machen will? Die Größe von Bildern auslesen.

PHP-Code:
<?php

function Dateigroesse($URL)
{
    
$Groesse filesize($URL);
    if(
$Groesse<1000)
    {
        return 
number_format($Groesse0","".")." Bytes";
    }
    elseif(
$Groesse<1000000)
    {
        return 
number_format($Groesse/10240","".")." kB";
    }
    else
    {
        return 
number_format($Groesse/10485760","".")." MB";
    }
}

?>
<html>
<head>
<title>Dateigröße eines Downloads automatisch anzeigen</title>
</head>
<body>

<a href="downloads/bilder.zip">Download</a> <?php echo Dateigroesse("downloads/bilder.zip"); ?><br>
<a href="downloads/programm.zip">Download</a> <?php echo Dateigroesse("downloads/programm.zip"); ?>

</body>
</html>
freakazoid ist offline   Mit Zitat antworten
Alt 04.10.05, 19:49   #6 (permalink)
Moderator
 
Registriert seit: 17.10.01
soox Leistung: Facit NTK
Likes: 0
Standard

worauf zeigt die "URL"? kann sein, dass dein provider wie oben schon geschrieben externe links nicht zulaesst. --> wenn du die groesse von lokalen files haben willst, nimm lokale pfade...damit wirds sicher funktionieren.
soox ist offline   Mit Zitat antworten
Alt 04.10.05, 22:00   #7 (permalink)
 
Benutzerbild von BasicAvid
 
Registriert seit: 17.03.04
BasicAvid Leistung: Facit NTK
Likes: 2
Standard

Soweit ich gesehen habe willst Du die Files anzeigen und zum Download anbieten oder? Das nachfolgende Script liest aus einem Verzeichnis alle Dateien aus und zeigt Sie an. Liegt die PHP-Datei auf dem gleichen Server wie Dateien die Du auslesen willst?


PHP-Code:
<?php 
function link()
{
echo 
"OnMouseOver=\"javascript:this.className='over'\" OnMouseOut=\"javascript:this.className='zeile'\"";
}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
  <head>
    <title>Download</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
  </head>
  <style type="text/css">
  .over{background-color:#7428D0;}
  .up{}
  a:link{ text-decoration:none;
          color:#ffffff;
        }
  a:link:hover{
            text-decoration:none;
            color:#ffffff;
            
         }
  a:visited{
              text-decoration:none;
              color:#ffffff;
              
           }
 a:visited:hover{
                  text-decoration:none;
                  color:#ffffff;
                }
td.title{ border:1px;
          border-style:solid; 
          border-color:#000000; 
          background-color:#7428D0;
          font-size:10pt;
          font-weight:bold;
        }
td.zeile{ border:1px;
          border-style:solid; 
          border-color:#7428D0; 
          background-color:#000000;
          color:#ffffff;
          font-size:10pt;
        
        }
td.info{ color:#ffffff;}
body{  background-color:#000000;}         
button {  border:1px; 
          border-style:solid;
          border-color:#ffffff; 
          background-color:#7428D0;}
  
  
  
  </style>
  <body>
    <table border="0" align='center' width="470" cellspacing="1">
    <tr><td class="title">Dateiname</td><td class="title">Typ</td><td class="title">Ge&auml;ndert</td><td class="title">Gr&ouml;&szlig;e</td></tr>
    <?php
    $loginOK
=TRUE;
    if(isset(
$loginOK))
    {
    function 
showdir($path)
    {
      
$zaehler=0;
      
//echo "<tr><th colspan='3' align='center'width='350'>Scripte</th></tr>\n";
      
$dirs $files = array();
      
$dir opendir($path);
      while(
$entry readdir($dir))
        if(
is_file($entry))
        {
          
$entry=strtolower($entry);
          
$files[]=$entry;
        }
       
fclose($dir);
      
sort($files);
      for(
$i=0;$i<count($files);$i++)
        {
          
$fsize=filesize($files[$i]);
          
$fmtime=filemtime($files[$i]);
          
$fmtime=date("d.m.Y",$fmtime);
          
$ftyp=explode(".",$files[$i]);
          echo 
"<tr><small><td class='zeile'",link(),"><a href='"$files[$i], "'>$ftyp[0]</a></td><td class='zeile' align='center'>",$ftyp[1],"</td><td class='zeile' align='center'>$fmtime</td><td align='right' class='zeile'>",$fsize,"</td></tr>\n";
          
$zaehler++;
                  
        
        }
        if(
$zaehler==0)
        {
          echo 
"<tr><td colspan='4' class='info'><small>Es wurden keine Dateien zum anzeigen gefunden!</small></td></tr>\n";
        }
        else
        {
          echo 
"<tr><td colspan='4' class='info'><small>Es wurde(n) $zaehler Datei(en) zum anzeigen gefunden!</small></td></tr>\n";
        }
        
     }
     
showdir('./');
     }
     else
     {
      echo 
"<tr><td colspan='2' align='center' class='info'><h3>Sie haben sich nicht angemeldet!</h3></td></tr>\n";
     }
    
?>
    
    </table>
    <center><button onClick="window.close()" class="button">Close</button></center>    
  </body>
</html>
__________________
Mfg Basic Avid
- Use it or be used! -
BasicAvid ist offline   Mit Zitat antworten
Alt 04.10.05, 23:16   #8 (permalink)
Themenstarter
 
Registriert seit: 08.10.03
freakazoid Leistung: Facit NTK
Likes: 0
Standard

Es funktioniert jetzt. mit dem zweiten Skript einwandfrei, danke.
freakazoid ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » FilesizeAngabe wird nicht angezeigt :(
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
COM Port wird nicht angezeigt! enkore Die Problemzone 3 29.05.09 01:12
IIS 6.0 , PHP 4.4.4 - IP wird nicht angezeigt ba2 Internet Allgemein 2 27.10.06 22:25
temp wird nicht angezeigt. xeenon Hardware Probleme 5 17.08.04 16:08
DVD-Brenner wird nicht angezeigt Lord_Nykon Windows 4 21.04.04 15:46
Partition wird nicht angezeigt dexyxp Hardware Probleme 4 21.08.03 15:07


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61