Avatar billede mofl99ab Nybegynder
28. april 2009 - 17:13 Der er 5 kommentarer

Styre max antal uploads Wordpress

Hej

Jeg har en udfordring med dette PHP script. Som det ser ud nu så kan brugerne uploade lige så mange billeder de har lyst til på min Wordpress blog, men jeg vil gerne sätte en begränsning på 4 billeder f.eks.

Er der nogen der kan hjälpe med denne ?

På forhånd tak !
-------------------------

    if ( $err == "" ) {

  //1024 bytes = 1kb
  //1024000 bytes = 1mb
  $size_bytes = 1024000;
  $size_mb = $size_bytes / 1024000;
  $limitedext = array(".gif",".png",".jpg",".jpeg");

        $dir_to_make = "wp-content/uploads/classipress";
        $dir_to_make = strtolower($dir_to_make);
        $time = time();

        $i = 1;
        $images = "";
        $err2 = "";
        while(list($key,$value) = each($_FILES['images']['name'])) {
            if(!empty($value)) {
                $filename = strtolower($value);
                $filename = str_replace(" ", "-", $filename);
                //get image extension
                $tipul = strrchr($filename,'.');
                $filename = $time."-$i".$tipul;
                $add = "$dir_to_make/$filename";
                //$add = "$filename";

          //Make sure that file size is correct
                $file_size = $_FILES['images']['size'][$key]; //getting the right size that coresponds with the image uploaded
                  if ($file_size == "0"){
                      $err2 .= "The file <b>$value</b> has 0 bytes.<br />";
                  } else {
                    if ($file_size > $size_bytes){
                          $err2 .= "The file <b>$value</b> is bigger than 2MB.<br />";
                      }
                  }
                  //check file extension
                  $ext = strrchr($filename,'.');
                  if ( (!in_array(strtolower($ext),$limitedext)) ) {
                      $err2 .= "Filen <b>$value</b> är inte en bild<br />";
                  }


                //echo $_FILES['images']['type'][$key];
                if ( $err2 == "" ) {
                    if (!file_exists($dir_to_make)) { mkdir($dir_to_make, 0777); }
                    copy($_FILES['images']['tmp_name'][$key], $add);
                    chmod("$add",0777);
                   
                    $images .= get_option('home')."/".$add.",";
                    //$images .= $add.",";
                }
                $err2 = "";
                $i++;
            }//if empty $value
        }//end while

    $post_code = time();
Avatar billede CCodam Nybegynder
28. april 2009 - 17:45 #1
Jeg tror den simpelste metode ville være at lave en mappe til hver bruger, og så her tjekke hvor mange filer der er uploadet...

Du skal i så fald starte med at få current user_login:

global $user_login;
get_currentuserinfo();


Derefter ændre du $dir_to_make til at indeholde mappe navnet for brugeren:

$dir_to_make = "wp-content/uploads/classipress/" . $user_login;

Så kan du bruge følgende linie til at finde ud af hvor mange filer personen har i sin mappe:

$total_images = count(glob($dir_to_make . "/*.*));

Og så lave en if sætning, som laver fejl hvis $total_images => 4...

Jeg har desværre ikke så meget tid, så du må selv lige prøve at implementere det...ellers må du vende tilbage, og så skal jeg selvfølgelig nok forsøge at hjælpe dig :)
Avatar billede mofl99ab Nybegynder
29. april 2009 - 10:28 #2
Tak for svaret, jeg vil dog helst undgå at have login til at styre, da jeg ikke har tänkt mig at have påkrävet login for at uploade.
Hvis man kunne lave en styring, sådan at scriptet stoppede med at loope efter X gange ville det väre super...Sådan at når der lå X billeder klar til upload, så kom "Gennemse" knappen ikke frem längere...
Avatar billede CCodam Nybegynder
29. april 2009 - 10:35 #3
#2 Jeg kan se at jeg har misforstået...Folk må altså godt uplaode så meget de vil, bare max 4 af gangen?

Jeg kan dog intet sted se i det script at man uploadere mere end et af gangen, der må være mere til dette script...

Hvor er det kode stykke, der kalder denne funktion?
Avatar billede mofl99ab Nybegynder
29. april 2009 - 12:29 #4
ah ja selvf...

Dette er koden fra formularen hvor man kan lägge billeder op...
Er ikk helt sikker, men er det her det kaldes ?


<?php _e('Upload billeder'); ?><br />
                <input type="file" name="images[]" class="wwIconified" /><br />
                <small>(<?php _e('Bilder måsta vara under 1 MB'); ?>)</small><br /><br />

        </div>        <div style="clear: both;"></div>
        <center>
            <div class="capcha">
                <?php
                $nr1 = rand("0", "9");
                $nr2 = rand("0", "9");
                ?>
                <?php echo $nr1; ?> + <?php echo $nr2; ?> = <input type="text" name="total" style="width: 30px; text-align: center; border: 1px #DF0005 solid; padding: 4px;" maxlength="2" value="" /> &nbsp;
                <input type="hidden" name="nr1" value="892347<?php echo $nr1; ?>" />
                <input type="hidden" name="nr2" value="234543<?php echo $nr2; ?>" />
            </div>
Avatar billede CCodam Nybegynder
29. april 2009 - 18:56 #5
#4 Vi er på rette vej, men der må være noget før dette...

Du kan også uploade de givne php filer til peecee.dk og så lige smide et link her, så jeg bedre kan overskue hvad der rent faktisk sker...

Eller du kan tilføje mig på msn: cco AT coretech DOT dk
Og her give mig en bruger til jeres wordpress site, så kan jeg lige hurtigt kigge på det :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester