Avatar billede doomstone-dk- Nybegynder
24. august 2003 - 19:52 Der er 29 kommentarer og
1 løsning

Uploade script

Når jeg uploader en fil som er mere en et par mb sor så sletter den mit $_POST array! virker dog fint når jeg uploader en mindre fil!


WHY?


<?
include "top.php";
set_time_limit(0);
?>


    <table align="center" bgcolor="#000000" border="0" cellPadding="0" cellSpacing="0" width="100%">
        <tr>
          <td width="100%" height="100%">
          <table border="0" cellpadding="0" cellspacing="1" height="100%" width="100%">
            <tr>
            <td bgcolor="#cccccc" valign="top" height="100%" width="100%">
            <center>Admin: Tilføj en elev<center>   
            </td>
            </tr>
                        <tr>
            <td bgcolor="#ffffff" valign="top" height="100%" width="100%">
<center>


<?

IF($_SESSION[navn] && $_SESSION[brugerid]){



if($_GET[status]=="save"){
    print_r($_POST);die();
    IF($_POST[cat]&&$_POST[name]){
       
    $type = explode(".", $_FILES['link'][name]);   
    $type = $type[count($type)-1];
    IF(substr(strtolower($type),"0","3")=="php"||
    substr(strtolower($type),"0","3")=="htm"||
    substr(strtolower($type),"0","4")=="html"||
    substr(strtolower($type),"0","3")=="asp"||
    substr(strtolower($type),"1","2")=="ht"){
        die("Du kan ikke uploade hjemmesider!");
    }
       
    $test = explode(":", $_FILES['link'][name]);
    if(strtolower($test[0])!="http"){
           
    {
  /* we're doing a submit */
  $form_data_name = $_FILES['link']['name'];
  $form_data_size = $_FILES['link']['size'];
  $form_data_type = $_FILES['link']['type'];

  $name = name_to_dir($_SESSION[navn]);
  $link='images\\'.$name.'\\';
  IF(!is_dir($link)){
      mkdir($link, 777);
  }

  IF(is_file($link.$form_data_name)){
      unlink($link.$form_data_name);
  }

    move_uploaded_file($_FILES['link']['tmp_name'], $link.$form_data_name);

  switch ($_FILES['link']['error']){
  case 0:
    echo $_FILES['link']['name']."(".$_FILES['link']['size']." bytes) er nu uploadet.<br><br>";
    break;
  case 1:
    echo "Den fil du prøver at uploade er for stor.<br><br>";
    break;
  case 2:
    echo "Den fil du prøver at uploade er for stor.<br><br>";
    break;
  case 3:
    echo "Filen blev ikke 100% uploadet.<br><br>";
    break;
  case 4:
    echo "Filen blev ikke uploadet.<br><br>";
    break;
  case 5:
    echo "Uploadet fil størelse 0 bites<br><br>";
    break;
  }
}   

$linkking = $link.$form_data_name;       
}else{   

$linkking = $_FILES['link'][name];
}
   
    IF($_POST[cat]=="OTHER"){
   
    $foresp = mysql_query("SELECT * FROM 1x_cat WHERE name='$_POST[other]' ORDER BY id") or die (mysql_error());
    $ja = mysql_num_rows($foresp);
    IF ($ja == 0){
    $_POST[cat]=$_POST[other];
    $array[]="name";
    $arrayver[]=$_POST[cat];
    db_save("1x_cat", $array, $arrayver);   
       
   
    }else{
    while($data = mysql_fetch_array($foresp)){
    $_POST[cat]=$data[id];
    }
    }
   
   
   
   
    $foresp = mysql_query("SELECT * FROM 1x_cat WHERE name='$_POST[other]' ORDER BY id") or die (mysql_error());
    while($data = mysql_fetch_array($foresp)){
    $_POST[cat]=$data[id];   
    }
   
}
    unset($array);
    unset($arrayver);       
    $array[]="catid";
    $array[]="name";
    $array[]="address";
    $array[]="filename";
    $array[]="time";
    $array[]="text";
    $arrayver[]=$_POST[cat];
    $arrayver[]=$_POST[username];
    $arrayver[]=str_replace("\\", "/", $linkking);
    $arrayver[]=$_POST[name];
    $arrayver[]=time();
    $arrayver[]=$_POST[text];
    db_save("1x_cat_show",$array,$arrayver);
   
    IF($_POST[deleteyes]=="yes"){
   
    }
   
   
    echo "Billedet er tilføjet<br>";
   
}else{
    Echo "Et eller flere af felterne var tomme<br>";
}
}

?>
</center>
<form name="form_standard" enctype='multipart/form-data' method="POST" action="admin.add.php?status=save">

<table border="0" width="100%" height="346" cellspacing="0" cellpadding="0">
<?$myname=$_SESSION[navn];?>
<input type="hidden" name="username" value="<?=$myname?>" size="20">

  <input type="hidden" name="deleteid" value="<?IF($_GET[id]){echo $_GET[id];}else{echo "0";}?>" size="20">
  <input type="hidden" name="deleteyes" value="<?IF($_GET[delete]){echo $_GET[delete];}else{echo "0";}?>" size="20">
  <tr>
    <td width="15%" valign="top" height="23" class="tbhead">Navnet på billedet:</td>
    <td width="60%" height="23" valign="top" class="tbbody"><input type="text" value="<?=$_GET[name]?>" name="name" size="20"></td>
  </tr>
  <tr>
    <td width="15%" valign="top" height="214" class="tbhead">Noget information om billedet:</td>
    <td width="60%" height="214" class="tbbody">
   
  <table border="0" cellpadding="0" cellspacing="0" class="tabel_width">
        <tr>
          <td width="50%" valign="top">
                <textarea class="input" border="0" rows="10" name="text" cols="50"><?=$_GET[text]?></textarea>
            </td>
          <td width="50%" valign="top" class="tbbody">
            <?  Include "scripts/codes.php"; ?>
          </td>
      </tr>
  </Table>
   
  </td>
  </tr>
  <tr>
    <td width="15%" valign="top" valign="top" height="16" class="tbhead">Link til billedet:</td>
    <td width="60%" height="16" valign="top" class="tbbody"><input type='file' name='link' size='40'></td>
  </tr>
 
  <tr>
    <td width="15%" valign="top" valign="top" height="16" class="tbhead"></td>
    <td width="60%" height="16" valign="top" class="tbbody"></td>
  </tr>
 
  <tr>
    <td width="15%" valign="top" valign="top" height="16" class="tbhead">Hvordan laver man en ny gruppe</td>
    <td width="60%" height="16" valign="top" class="tbbody">
    Hvis du vil have en gruppe som ikke findes skal du bare vælge OTHER i den første rulle menu og så navnet på den ønsked gruppe under.
    <br>Hvis du ikke har valgt "OTHER" vil den bliver placeret i den gruppe du har sat den på i rulle menuen </td>
  </tr>
 
  <tr>
    <td width="15%" height="19" class="tbhead">Gruppe:</td>
    <td width="60%" height="19" class="tbbody">
   
   
   
    <select size="1" name="cat">
 
    <?
        $foresp = mysql_query("SELECT * FROM 1x_cat ORDER BY id") or die (mysql_error());
    $ja = mysql_num_rows($foresp);
    IF ($ja == 0){} else {
    while($data = mysql_fetch_array($foresp)){
    echo "<option value=\"$data[id]\"";
    IF($data[id]==$_GET[cat]){echo " selected "; }
    echo ">$data[name]</option>";   
    }}
    ?>
   
    <option <?IF("OTHER"==$_GET[cat]){echo "selected"; }?> value="OTHER">OTHER</option>
  </select>
 
 
 
  </td>
  </tr>
  <tr>
    <td width="15%" valign="top" class="tbhead">If other:</td>
    <td width="60%" height="19" valign="top" class="tbbody"><input type="text" value="<?=$_GET[other]?>" name="other" size="20"></td>
  </tr>
</table>



<p><input type="submit" value="Send">



</form><center>
<?

}else{
echo "Du er ikke logget ind<br> <a href=\"admin.php\">Log in</a><br>";
}


?>


</center>
            </td>
            </tr>
           
          </table>
          </td>
        </tr>
        </table>
        <!-- end story -->
        <br />

<?

include "bund.php";
?>
Avatar billede webcreator Nybegynder
24. august 2003 - 19:53 #1
Har du tjekket din phpinfo() ?
Ofte acceptere serveren ikke filer større end 2 MB
Avatar billede webcreator Nybegynder
24. august 2003 - 19:54 #2
Kig efter punktet "upload_max_filesize"
Avatar billede doomstone-dk- Nybegynder
24. august 2003 - 19:55 #3
har jeg sat til 200m
Avatar billede detox Nybegynder
24. august 2003 - 20:00 #4
200 MB? Det var det ellers noget.
Avatar billede doomstone-dk- Nybegynder
24. august 2003 - 20:01 #5
Ja
Avatar billede detox Nybegynder
24. august 2003 - 20:07 #6
Har du husket en:
<input type="hidden" name="MAX_FILE_SIZE" value="200000000">
i din form?
Avatar billede doomstone-dk- Nybegynder
24. august 2003 - 20:11 #7
Nej men selv med den i virker det ikke!
Avatar billede detox Nybegynder
24. august 2003 - 20:20 #8
Hmm, det var nu osse mere et gæt på, at browseren kunne have en form for begrænsning af filstørrelse som default.
Avatar billede detox Nybegynder
24. august 2003 - 20:25 #9
Husk osse at:
<input type="hidden" name="MAX_FILE_SIZE" value="200000000">
skal stå før din:
<input type="file" name"whatever">
Avatar billede doomstone-dk- Nybegynder
24. august 2003 - 20:38 #10
Gør den også
Avatar billede detox Nybegynder
24. august 2003 - 20:47 #11
Kan det hænge sammen med max_execution_time?
Avatar billede doomstone-dk- Nybegynder
24. august 2003 - 20:48 #12
set_time_limit(0);
Avatar billede detox Nybegynder
24. august 2003 - 20:52 #13
Ja, så må jeg sige det virker pudsigt. Har du prøvet med andre browsere. Kunne være det var browserspecifikt.
Avatar billede fangel Nybegynder
24. august 2003 - 21:35 #14
hvor meget kan HTTP protokollen overhovedet klare?

Morten
Avatar billede detox Nybegynder
24. august 2003 - 22:07 #15
Hvis du har mulighed for at bruge FTP, er her er en workarround der benytter sig af ftp:

<?php
if(!empty($_POST['uploadfile'])){
    $filepathname = $_POST['uploadfile'];
    $filename = basename($filepathname);
    $uid = 'brugernavn';
    $pwd = 'password';
    $host = 'ftp.server.dk';
    $ftp = ftp_connect($host) or die("Couldn't connect to $host");
    ftp_login($ftp,$uid,$pwd) or die("Couldn't log in to $host");
    ftp_chdir($ftp,"/");
    if(ftp_put($ftp,$filename,$filepathname,FTP_BINARY)){
        ftp_close($ftp);
        echo "<META HTTP-EQUIV='Refresh' CONTENT='1;url=".$_SERVER['PHP_SELF']."' />";

    }
    else
    {
        die("<br>Could not transfer $filename to $host<br>");
    }
}
else
{
    ?>
    <html>
    <head>
    <title>Upload Files</title>
    </head>
    <body>
    <form name="frmUpload" method="POST" action="<?=$_SERVER['PHP_SELF']?>">
            <input type="file" name="uploadfile" />
            <br />
            <input type="Submit" value="Submit" />
    </form>
    </body>
    </html>
    <?
}
?>
Avatar billede doomstone-dk- Nybegynder
24. august 2003 - 22:32 #16
Hmm nice script. den connecter fint men den vil ikke ligge filer over på ftpen!

her er loggen fra min ftp!

(000004) 24-08-2003 22:29:53 - (not logged in) (192.168.1.3) > connected to ip : 192.168.1.3
(000004) 24-08-2003 22:29:53 - (not logged in) (192.168.1.3) > sending welcome message.
(000004) 24-08-2003 22:29:53 - (not logged in) (192.168.1.3) > 220 BulletProof FTP Server ready ...
(000004) 24-08-2003 22:29:53 - (not logged in) (192.168.1.3) > USER kasper_sogaard
(000004) 24-08-2003 22:29:53 - (not logged in) (192.168.1.3) > 331 Password required for kasper_sogaard.
(000004) 24-08-2003 22:29:53 - (not logged in) (192.168.1.3) > PASS ********
(000004) 24-08-2003 22:29:53 - kasper_sogaard (192.168.1.3) > logged in.
(000004) 24-08-2003 22:29:53 - kasper_sogaard (192.168.1.3) > 230 User kasper_sogaard logged in.
(000004) 24-08-2003 22:29:53 - kasper_sogaard (192.168.1.3) > CWD /
(000004) 24-08-2003 22:29:53 - kasper_sogaard (192.168.1.3) > asked to change directory : 'C:\ -> C:\' --> Access allowed.
(000004) 24-08-2003 22:29:53 - kasper_sogaard (192.168.1.3) > 250 CWD command successful. "/" is current directory.
(000004) 24-08-2003 22:29:53 - kasper_sogaard (192.168.1.3) > disconnected. (00:00:00)
Avatar billede doomstone-dk- Nybegynder
24. august 2003 - 22:49 #17
Jeg kan ikke se at den overhoved prøver at overføre?
Avatar billede detox Nybegynder
24. august 2003 - 22:54 #18
Spooky!
Får du ingen fejlmelding?
Avatar billede detox Nybegynder
24. august 2003 - 22:57 #19
Jeg mener den burde jo komme med:
"Could not transfer $filename to '$host'", hvis ftp_put() svigter.
Avatar billede doomstone-dk- Nybegynder
24. august 2003 - 23:01 #20
Could not transfer Kasper 002.jpg to 192.168.1.3
Avatar billede detox Nybegynder
24. august 2003 - 23:11 #21
Det ser ud som om du har et mellemrum i dit filnavn: "Kasper 002.jpg", prøv at rette det til "Kasper_002.jpg".
Avatar billede doomstone-dk- Nybegynder
24. august 2003 - 23:14 #22
Could not transfer Kasper_002.jpg to 192.168.1.3
Avatar billede doomstone-dk- Nybegynder
24. august 2003 - 23:16 #23
jeg bruger "BPFTP Server" hvis det er derfor?
Avatar billede doomstone-dk- Nybegynder
24. august 2003 - 23:23 #24
Men jeg kan overhoved ikke se på min ftp at den prøver at uploade filen!
Avatar billede detox Nybegynder
24. august 2003 - 23:32 #25
Det er sært. Her virker det fint. Jeg uploader fra win-xp til Linux-server uden problemer.
Måske skal du ændre den her:
ftp_chdir($ftp,"/"); til: ftp_chdir($ftp,"\\");
eller prøve at udkommentere den, da jeg ikke lige kan se den ændrer noget.
Avatar billede doomstone-dk- Nybegynder
25. august 2003 - 08:40 #26
Stadigvæk det samme
Avatar billede detox Nybegynder
25. august 2003 - 09:24 #27
Ja, så tror jeg næsten det er din FTP-server det er galt med. Hvis ikke det hænger sammen med at du ikke kan køre scriptet lokalt. Du kan prøve det med en anden FTP-server eller få en til at prøve udefra.
Avatar billede doomstone-dk- Nybegynder
25. august 2003 - 22:09 #28
Virker heller ikke på en anden server jeg VED virker
Avatar billede detox Nybegynder
25. august 2003 - 22:34 #29
Nu har jeg lige tjekket det med en fil på 2.3 MB og der er ingen problemer, så jeg vil tro du mangler noget i din opsætning på serveren.
Er din php kompileret med FTP support?
Avatar billede doomstone-dk- Nybegynder
17. april 2004 - 10:04 #30
lukker
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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