Naam veranderen bij uploaden

Status
Niet open voor verdere reacties.

MarcDelonghi

Gebruiker
Lid geworden
7 sep 2010
Berichten
29
Hallo,

Ik heb al reeds een topic lopen hierover, maar dat is een ander geval en een ander script. Vandaar dat ik een nieuw topic open.

Ik wil mensen de mogelijkheid geven op muziekbestanden en filmbestanden te uploaden.

Hiervoor heb ik dit formulier:
Laat ik het anders stellen,

Ik wil gewoon graag dat als mensen iets uploaden dat ze ook de mogelijkheid hebben om zelf een naam aan het bestand te geven.

In het formulier heb ik dit toegevoegd:
HTML:
  </form>
  
  <form enctype="multipart/form-data" action="uploader.php" method="POST">
    <p>Selecteer een bestand    	
      <input name="uploaded" type="file" /><br />
    Geef hier een referentie
    <input type="text" name="new_name2" />
    </p>
      <input type="submit" value="Upload" />
    </p>
  </form>
En het php script ziet er zo uit:
PHP:
 <?php 
 $target = "upload/"; 
 $target = $target . basename( $_FILES['uploaded']['name']) ;  
 $ok=1; 
 
 //This is our size condition 
 if ($uploaded_size > 10000000) 
 { 
 echo "Het bestand dat u probeert te uploaden is te groot, probeer een kleiner bestand of neem even contact met ons op!<br>"; 
 $ok=0; 
 } 
 // begin security code
  $allowedExtensions = array("mpeg","aac","mp3","wav","avi", 
    "mov","wmv","flv","swf",); 
  foreach ($_FILES as $file) { 
    if ($file['tmp_name'] > '') { 
      if (!in_array(end(explode(".", 
            strtolower($file['name']))), 
            $allowedExtensions)) { 
       die($file['name'].' ongeldige extensie!<br/>'. 
        '<a href="javascript:history.go(-1);">'. 
        '&lt;&lt Probeer opnieuw</a>'); 
      } 
    } 
  } 
  // end security code  
				
 //If everything is ok we try to upload it 
  
 { 
 if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target)) 
 { 
 echo "Uw bestand ". basename( $_FILES['uploadedfile']['name']). " is geupload!"; 
 } 
 else 
 { 
 echo "Sorry, er is iets misgegaan met het uploaden van uw bestand. Probeer het even opnieuw of neem contact met ons op."; 
 } 
 } 
 ?>
Waar in het phpscript moet ik die naam wijzigingen invoeren?

Dit heb ik als code die ik wil toevoegen:
PHP:
$destination = $_POST['new_name'] . strstr($_FILES['pix']['name'], '.');
Maar dit heb ik uit een script genomen voor afbeeldingen, terwijl ik geen afbeeldingen wil laten uploaden..
 
Laatst bewerkt door een moderator:
Op dit moment wordt de volgende bestandsnaam bepaald op deze regel:
PHP:
$target = $target . basename( $_FILES['uploaded']['name']) ;

Wat je dus kunt doen is het `basename( $_FILES['uploaded']['name']´ gedeelte vervangen door bijv een POST variabele die de gebruiker in het formulier opgenomen heeft.

Tevens is het handig om [ php] tags om je code te zetten, dan is ie wat leesbaarder.
 
Oké, zal ik de volgende keer even doen.

Maar als ik de bovensteregel dus wijzig naar:

PHP:
$target = $_POST['new_name'] . strstr($_FILES['pix']['name'], '.');

dan zou dat voldoende moeten zijn toch? Want als ik dat doe dan krijg ik een error.
'Pix' verwijst toch naar een afbeelding of niet?
 
Oke, ik heb het!

dit is de code geworden:

PHP:
 $target = $target . $_POST['new_name'] ;

Helaas wordt nu wel de extensie veranderd, waardoor ik de muziekbestanden niet herken. Ze worden uiteindelijk wel afgespeeld, maar de extensie is onbekend.
 
Je kunt de extensie van de bestaande filename afbreken en weer toevoegen, dat doe je hier ook:

PHP:
end(explode(".", strtolower($file['name'])))

Die kun je dan weer eraan plakken. Niet vergeten om ook de . weer terug te zetten anders gaat het alsnog fout.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan