Gå til innhold

Endelse i nytt navn på upload


Anbefalte innlegg

Hei.

På denne uploaden, når du velger fil du vil laste opp, skal endelsen (.xx) på den fila du velger, blir del av det nye navnet, så hvis du velger "noe.gif", skal den bli "180107201400.gif" (tallet avhenger av dato og tid). og hvis filen du vil laste opp er "noe.jpg", blir det "180107201400.jpg".

- Hvordan får jeg til det utifa det jeg har der nå, jeg har forsøkt litt, men det blir uten endelsen.

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Noe.no; Uploader</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="stylesheet.css" rel="stylesheet" type="text/css">
</head>

<body>
<table width="100%" cellspacing="2" cellpadding="2" height="100%">
 <tr>
   <td>
     <div align="center">
       <table width="550" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#336699">
         <tr> 
           <td background="top.gif" height="60"><img src="head.gif" width="256" height="45">
</td>
         </tr>
         <tr> 
           <td background="bg.gif"><table width="100%" cellpadding="5" cellspacing="5">
               <tr> 
                 <td background="bg.gif">
                   <form name="formen" action="index.php" method="post" enctype="multipart/form-data">
              
                  
                     
                    
 <table width="100%" cellspacing="2" cellpadding="2">
                       <tr> 
                        <td width="180" background="bg.gif">Fil: </td>
                         <td background="bg.gif"> 
                           <input type="file" name="bilde_fil">
                         </td>
                       </tr>
                       <tr> 
                 
                         <td background="bg.gif"> 
                       
                         </td>
                       </tr>
                       <tr> 
                         
                      
                           <input type="hidden" value="<?php echo date("dmy"); ?>" name="nyttnavn">     <input type="hidden" value="<?php echo date("his"); ?>" name="ending"> 
                         </td>
                       </tr>
                       <tr> 
                         <td width="180" background="bg.gif"></td>
                         <td background="bg.gif"> 
                       
                         </td>
                       </tr>
                     </table>
                  
                     <center><input type="submit" value="Last opp" name="submit"></center><br>
                     <input type="hidden" name="MAX_FILE_SIZE" value="9999999999999999">
                                          <?php
#Config
$path="uploaded"; //The file-path(remember the last '/')

#Do not edit  below :)
if ($bilde_fil && $nyttnavn){
  $ok = 1;

  if (is_file($path.$nyttnavn.$ending)){
     print "<b>Feilmelding:</b>, filnavnet finnes allerede på serveren. Vennligst velg et annet navn.<br>";
     $ok = 0;
  }
  if (preg_match("/^[\/\\\.]/", $nyttnavn)){
     print "<b>File could not be transferred</b>, Filnavnet kan ikke starte med: '.', '/' or '\'";
     $ok = 0;
  }
 
  print "";
}

if ($ok){
  $res = copy($bilde_fil, $path."/".$nyttnavn.$ending);
print "<hr><br><b>Image successfully transferred</b>, du lastet opp dette bildet:<br><br><center><img src='$server/$stiup/uploaded/".$nyttnavn.$ending."'> <br><a href='$server/$stiup/uploaded/".$nyttnavn.$ending."'>".$nyttnavn.$ending."</a></center><br><br /><input type='text' onClick='highlight(this);' style='width: 500px' size='70' value='[img=$server/$stiup/uploaded/".$nyttnavn.$ending."]'; border="0" width="89" alt="Image Hosted by ImageShack.us" /></a>' /><BR> IMG-tag for forum <br /><br><input type='text' onClick='highlight(this);' style='width: 500px' size='70' value='$server/$stiindex/hotlink.php?img=".$nyttnavn.$ending."' /> </a><BR>Hotlink<br><br />
<input type='text' onClick='highlight(this);' style='width: 500px' size='70' value='$server/$stiup/uploaded/".$nyttnavn.$ending."' /> <BR>Direkte link til bilde<br /><br /><!-- TF 728x90 JScript VAR NoAD code -->";
}
else
{
print "";
  print "";
}
?>
                  
                   </form>
  
  </td>
               </tr>
             </table> </td>
         </tr>
         <tr> 
           <td height="37"> 
             <table width="100%" cellspacing="0" cellpadding="0">
               <tr> 
                 <td height="37" background="bottom.gif"> 
                   <div align="center"> Noe.no (2006)
                     <br>
                    </div>
                 </td>
               </tr>
             </table>
           </td>
         </tr>
       </table>
       <p class="headcell"> </p>
     </div>
   </td>
 </tr>
</table>
</body>
</html>

Lenke til kommentar
Videoannonse
Annonse

Sånn ser koden ut nå:

 

<?php
include "config.php";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>noe.com; Uploader</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="stylesheet.css" rel="stylesheet" type="text/css">
</head>

<body>
<table width="100%" cellspacing="2" cellpadding="2" height="100%">
 <tr>
   <td>
     <div align="center">
       <table width="550" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#336699">
         <tr> 
           <td background="top.gif" height="60"><img src="head.gif" width="256" height="45">
</td>
         </tr>
         <tr> 
           <td background="bg.gif"><table width="100%" cellpadding="5" cellspacing="5">
               <tr> 
                 <td background="bg.gif">
                   <form name="formen" action="index.php" method="post" enctype="multipart/form-data">
              
                  
                     
                    
 <table width="100%" cellspacing="2" cellpadding="2">
                       <tr> 
                        <td width="180" background="bg.gif">Fil: </td>
                         <td background="bg.gif"> 
                           <input type="file" name="bilde_fil">
                         </td>
                       </tr>
                       <tr> 
                 
                         <td background="bg.gif"> 
                       
                         </td>
                       </tr>
                       <tr> 
                         
                      
             
                         </td>
                       </tr>
                       <tr> 
                         <td width="180" background="bg.gif"></td>
                         <td background="bg.gif"> 
                       
                         </td>
                       </tr>
                     </table>
                  
                     <center><input type="submit" value="Last opp" name="submit"></center><br>
                     <input type="hidden" name="MAX_FILE_SIZE" value="9999999999999999">
                                          <?php
#Config
$path="uploaded"; //The file-path(remember the last '/')

$new_filename = date("dmyhis");
$oldfilename = $_FILES['bilde_fil'];

$get_ext = explode('.', $oldfilename); //Delere filnavnet på punktummen


$new_name = $new_filename.".".$get_ext[1]; //vil gi test.jpg


#Do not edit  below :)
if ($bilde_fil && $new_name){
  $ok = 1;

  if (is_file($path.$nyttnavn.$ending)){
     print "<b>Feilmelding:</b>, filnavnet finnes allerede på serveren. Vennligst velg et annet navn.<br>";
     $ok = 0;
  }
  if (preg_match("/^[\/\\\.]/", $nyttnavn)){
     print "<b>File could not be transferred</b>, Filnavnet kan ikke starte med: '.', '/' or '\'";
     $ok = 0;
  }
 
  print "";
}

if ($ok){
  $res = copy($bilde_fil, $path."/".$new_name);
print "<hr><br><b>Image successfully transferred</b>, du lastet opp dette bildet:<br><br><center><img src='$server/$stiup/uploaded/".$new_name."'> <br><a href='$server/$stiup/uploaded/".$new_name."'>".$new_name."</a></center><br><br /><input type='text' onClick='highlight(this);' style='width: 500px' size='70' value='[img=$server/$stiup/uploaded/".$new_name."]'; border="0" width="89" alt="Image Hosted by noe.com" /></a>' /><BR> IMG-tag for forum <br /><br><input type='text' onClick='highlight(this);' style='width: 500px' size='70' value='$server/$stiindex/hotlink.php?img=".$new_name."' /> </a><BR>Hotlink<br><br />
<input type='text' onClick='highlight(this);' style='width: 500px' size='70' value='$server/$stiup/uploaded/".$new_name."' /> <BR>Direkte link til bilde<br /><br /><!-- TF 728x90 JScript VAR NoAD code -->";
}
else
{
print "";
  print "";
}
?>
                  
                   </form>
  
  </td>
               </tr>
             </table> </td>
         </tr>
         <tr> 
           <td height="37"> 
             <table width="100%" cellspacing="0" cellpadding="0">
               <tr> 
                 <td height="37" background="bottom.gif"> 
                   <div align="center"> noe.com (2006)
                     <br>
                    </div>
                 </td>
               </tr>
             </table>
           </td>
         </tr>
       </table>
       <p class="headcell"> </p>
     </div>
   </td>
 </tr>
</table>
</body>
</html>

 

Den laster opp, men uten filendelse.

Så hvis jeg laster opp en fil som heter "test.jpg", blir det til "test." når den er lastet opp.

 

Hvis jeg slenger dette inn i tillegg:

<?php
echo "Oldfilename: $oldfilename";
?>

...blir resultatet "Oldfilename:"

Lenke til kommentar
  • 5 uker senere...

<?php
include "config.php";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>noe.no; Uploader</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="stylesheet.css" rel="stylesheet" type="text/css">
</head>

<body>
<table width="100%" cellspacing="2" cellpadding="2" height="100%">
 <tr>
   <td>
     <div align="center">
       <table width="550" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#336699">
         <tr> 
           <td background="top.gif" height="60"><img src="head.gif" width="256" height="45">
</td>
         </tr>
         <tr> 
           <td background="bg.gif"><table width="100%" cellpadding="5" cellspacing="5">
               <tr> 
                 <td background="bg.gif">
                   <form name="formen" action="index.php" method="post" enctype="multipart/form-data">
              
                  
                     
                    
 <table width="100%" cellspacing="2" cellpadding="2">
                       <tr> 
                        <td width="180" background="bg.gif">Fil: </td>
                         <td background="bg.gif"> 
                        <INPUT TYPE="file" NAME="fil" />
                         </td>
                       </tr>
                       <tr> 
                 
                         <td background="bg.gif"> 
                       
                         </td>
                       </tr>
                       <tr> 
                         
                      
             
                         </td>
                       </tr>
                       <tr> 
                         <td width="180" background="bg.gif"></td>
                         <td background="bg.gif"> 
                       
                         </td>
                       </tr>
                     </table>
                  
                     <center><input type="submit" value="Last opp" name="submit"></center><br>
                     <input type="hidden" name="MAX_FILE_SIZE" value="999999999999999999">
                                          <?php
#Config
$path="uploaded"; //The file-path(remember the last '/')

$yourfile = "$fil";
$fileinfo = pathinfo($yourfile);
$ext = $fileinfo['extension'];
$base = basename($yourfile, ".$ext");
$new_name=time().".$ext";


#Do not edit  below :)
if ($fil && $new_name){
  $ok = 1;

  if (is_file($path.$new_name)){
     print "<b>File could not be transferred</b>, filnavnet finnes allerede på serveren. Vennligst velg et annet navn.<br>";
     $ok = 0;
  }
  if (preg_match("/^[\/\\\.]/", $new_name)){
     print "<b>File could not be transferred</b>, filnavnet kan ikke starte med: '.', '/' or '\'";
     $ok = 0;
  }
 
  print "";
}

if ($ok){
  $res = copy($fil, $path."/".$new_name);
print "<hr><br><b>File successfully transferred</b>, du lastet opp denne filen:<br><br><center><img src='$server/$stiup/uploaded/".$new_name."'> <br><a href='$server/$stiup/uploaded/".$new_name."'>".$new_name."</a></center><br><br /><input type='text' onClick='highlight(this);' style='width: 500px' size='70' value='[img=$server/$stiup/uploaded/".$new_name."]'; border="0" width="89" alt="Image Hosted by noe.no" /></a>' /><BR> IMG-tag for forum <br /><br><input type='text' onClick='highlight(this);' style='width: 500px' size='70' value='$server/$stiindex/hotlink.php?img=".$new_name."' /> </a><BR>Hotlink<br><br />
<input type='text' onClick='highlight(this);' style='width: 500px' size='70' value='$server/$stiup/uploaded/".$new_name."' /> <BR>Direkte link til bilde<br /><br /><!-- TF 728x90 JScript VAR NoAD code -->";
}
else
{
print "";
  print "";
}
?>
                  
                   </form>
  
  </td>
               </tr>
             </table> </td>
         </tr>
         <tr> 
           <td height="37"> 
             <table width="100%" cellspacing="0" cellpadding="0">
               <tr> 
                 <td height="37" background="bottom.gif"> 
                   <div align="center"> noe.no (2007)
                     <br>
                    </div>
                 </td>
               </tr>
             </table>
           </td>
         </tr>
       </table>
       <p class="headcell"> </p>
     </div>
   </td>
 </tr>
</table>
</body>
</html>

 

Funker fortsatt ikke. Når jeg echoer $fil etter upload får jeg dette: /var/tmp/php0wnn2q

Endret av Quattro7
Lenke til kommentar

Funker fortsatt ikke. Når jeg echoer $fil etter upload får jeg dette: /var/tmp/php0wnn2q

7988981[/snapback]

 

$_FILES er en array bestående av følgende info: size, type, tmp_name, name og error.

Når du skal laste opp filer mellomlagrer phpparser den i en temporær mappe, spesifisert i tmp_name, denne tilsvarer stien til filen du skal laste opp. NÅr du skal hente ut filnavnet til den opprinnelige filen bruker du $_FILES['']['name']. Det er denne du skal trekke extension fra, ikke tmp-filen.

 

Så la oss si jeg skal laste opp bilde_av_meg.jpg-

Da ville jeg gjort noe slikt.

Koden er ikke testet, men logikken skal iallfall være på plass.

 

<?php
// putter array $_FILES['fil'] i en ny array
// Litt lettere å skrive enn $_FILES['fil']['name']
$file = $_FILES['fil'];
// Henter ut det opprinnelige navnet på filen (bilde_av_meg.jpg)
$file_name = $file['name'];
// Henter ut tmp-sti til filen, typisk noe slikt som /var/tmp/hy2t71
$old_path = $file['tmp_name'];
// Henter ut filinformasjon om den opprinnelige filen
$file_info = pathinfo($file_name);
// Henter ut filetternavn fra den opprinnelige filen
$ext = $file_info['extension'];
// Henter ut filnavn uten filetternavn
$base = basename($file_name, ".$ext");
// Lager et nytt filnavn med unix timestamp som filnavn og riktig filetternavn
$new_name=time().".$ext";
// Mappe hvor jeg vil lagre mine bilder
$new_path = "myImagefolder/$new_name";
// Kopierer bilde
if(!copy($old_path, $new_path)){
print "I/O Error. Unable to upload your file";
return;
}
print "Your file is successfully uploaded!";

?>

 

Og en ting til. Det er ikke nødvendig å ha med html-kode når du skal poste her med mindre html-koden er problemet ditt. Den er bare forvirrende og det er kjedelig å lese gjennom linje opp og linje ned med tables og br og stylesheet. Det som er viktig er der det skjer noe med php-ting

Lenke til kommentar

<?php
include "config.php";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>noe.no; Uploader</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="stylesheet.css" rel="stylesheet" type="text/css">
</head>

<body>
<table width="100%" cellspacing="2" cellpadding="2" height="100%">
<tr>
  <td>
    <div align="center">
      <table width="550" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#336699">
        <tr> 
          <td background="top.gif" height="60"><img src="head.gif" width="256" height="45">
</td>
        </tr>
        <tr> 
          <td background="bg.gif"><table width="100%" cellpadding="5" cellspacing="5">
              <tr> 
                <td background="bg.gif">
                  <form name="formen" action="index.php" method="post" enctype="multipart/form-data">
             
                 
                    
                   
<table width="100%" cellspacing="2" cellpadding="2">
                      <tr> 
                       <td width="180" background="bg.gif">Fil: </td>
                        <td background="bg.gif"> 
                       <INPUT TYPE="file" NAME="fil" />
                        </td>
                      </tr>
                      <tr> 
                
                        <td background="bg.gif"> 
                      
                        </td>
                      </tr>
                      <tr> 
                        
                     
            
                        </td>
                      </tr>
                      <tr> 
                        <td width="180" background="bg.gif"></td>
                        <td background="bg.gif"> 
                      
                        </td>
                      </tr>
                    </table>
                 
                    <center><input type="submit" value="Last opp" name="submit"></center><br>
                    <input type="hidden" name="MAX_FILE_SIZE" value="999999999999999999999999999999999999999999999999">
                                         <?php
#Config
$path="uploaded"; //The file-path(remember the last '/')

$file = $_FILES['fil'];
$file_name = $file['name'];
$old_path = $file['tmp_name'];
$file_info = pathinfo($file_name);
$ext = $file_info['extension'];
$base = basename($file_name, ".$ext");
$new_name=time().".$ext";

 #Do not edit  below :)
if ($fil && $new_name){
 $ok = 1;

 

 print "";
}

if($ok != "1")
{
echo "<br><b>File could not be transferred</b><br>Filen du valgte finnes ikke, og kan derfor ikke lastes opp. Prøv igjen.";
}
if ($ok){
 $res = copy($fil, $path."/".$new_name);
print "<hr><br><b>File successfully transferred</b>, du lastet opp denne filen:<br><br><center><img src='$server/$stiup/uploaded/".$new_name."'> <br><a href='$server/$stiup/

uploaded/".$new_name."'>".$new_name."</a></center><br><br /><input type='text' onClick='highlight(this);' style='width: 500px' size='70' value='[img]$server/$stiup/uploaded/".

$new_name."[/img]'; border="0" width="89" alt="Image Hosted by noe.no" /></a>' /><BR> IMG-tag for forum <br /><br><input type='text' 

onClick='highlight(this);' style='width: 500px' size='70' value='$server/$stiindex/hotlink.php?img=".$new_name."' /> </a><BR>Hotlink<br><br />
<input type='text' onClick='highlight(this);' style='width: 500px' size='70' value='$server/$stiup/uploaded/".$new_name."' /> <BR>Direkte link til bilde<br /><br /><!-- TF 728x90 

JScript VAR NoAD code -->";
}
else
{
print "";
 print "";
}




?>
                 
                  </form>
 
 </td>
              </tr>
            </table> </td>
        </tr>
        <tr> 
          <td height="37"> 
            <table width="100%" cellspacing="0" cellpadding="0">
              <tr> 
                <td height="37" background="bottom.gif"> 
                  <div align="center"> noe.no (2007)
                    <br>
                   </div>
                </td>
              </tr>
            </table>
          </td>
        </tr>
      </table>
      <p class="headcell"> </p>
    </div>
  </td>
</tr>
</table>
</body>
</html>

 

Denne funker, men jeg vil at, hvis filen som blir valgt, for eksempel, var på en diskett som ble tatt ut etter at filen som ligger på disketten ble valgt i uploaderen.

Når det blir trykket på upload da, vil jeg at det skal komme en feilmelding.

 

Rotete forklart :ermm:

Endret av rossbach1
Lenke til kommentar
Og enda en ting til. Hvorfor har du satt max_upload_size til 999999999999999999? Er du klar over hvor mye det egentlig er? 200 000 = 200kb (omtrent)

7989328[/snapback]

 

Det er fordi jeg vil kunne laste opp filer ubegrenset av størrelse.

7993531[/snapback]

 

Ja, det skjønner jeg - men å sette max_upload_size til 999999999999999999 bytes helt meningsløst, siden det tilsvarer 931322574.61548 gigabytes (abbreviated as G or GB), noe du aldri ville fått til å laste opp ved hjelp av php anyway (i php_ini er max_upload_size 8 eller 16mb)

 

Se her for å se hvor mye 999999999999999999 bytes er i ulike måleenheter: http://www.t1shopper.com/cgi-bin/calculate.pl

 

[edit] Lenken funket visst ikke, men her er copy/paste fra siden:

A file size of 999999999999999999 bytes can also be expressed as

8000000000000000000 bits

999999999999999999 bytes

976562500000000.000 kilobytes (abbreviated as KB or Kb*)

953674316406.2500 megabytes (abbreviated as M or MB)

931322574.61548 gigabytes (abbreviated as G or GB)

909494.701773 terabytes

888.1784197 petabytes

0.86736174 exabytes

Endret av CruellaDeVille
Lenke til kommentar
om jeg vil endre max upload size, hva skal jeg da endre i php.ini?

 

 

 

post_max_size = 8M

eller

memory_limit = 8M 

 

 

 

eller begge?

8002615[/snapback]

 

Du kan endre i php.ini, eller du kan bruke ini_set. Men å sette max_upload_size til noen gb er dumt, for skript har også noe som heter max_execution_time. Jeg har 200 kb hos meg, det er i minste laget siden de fleste digitale bilder nå er mange mb.

 

Jeg kan se for meg at de bruker input=hidden for max_size hvis den skal være under post_max_size/memory_limit.

Lenke til kommentar
Denne funker, men jeg vil at, hvis filen som blir valgt, for eksempel, var på en diskett som ble tatt ut etter at filen som ligger på disketten ble valgt i uploaderen.

Når det blir trykket på upload da, vil jeg at det skal komme en feilmelding.

7993673[/snapback]

 

Det blir opp til nettleseren, og er ikke noe du kan gjøre hverken med php eller javascript.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...