2009-12-07 6 views
1
function getExtension($str) { 
     $i = strrpos($str,"."); 
     if (!$i) { return ""; } 
     $l = strlen($str) - $i; 
     $ext = substr($str,$i+1,$l); 
     return $ext; 
} 

define ("MAX_SIZE","2000"); 

if(isset($_FILES['file_upload'])) 
{ 

$errors=0; 
$image=$_FILES['file_upload']['name']; 
if ($image) 
{ 
    $filename = stripslashes($_FILES['file_upload']['name']); 
    $extension = getExtension($filename); 
    $extension = strtolower($extension); 
    if (($extension != "jpg") && ($extension != "bmp") && ($extension != "png") && ($extension != "gif")) 
     { 
      echo '<h1>Unknown extension!</h1>'; 
      $errors=1; 
     } 
    else 
     { 
      $size=filesize($_FILES['file_upload']['tmp_name']); 
      if ($size > MAX_SIZE*1024) 
      { 
       echo '<h1>You have exceeded the size limit!</h1>'; 
       $errors=1; 
      } 
       $random_name=md5(uniqid(mt_rand(), true)).'.'.$extension; 
       $from=$_FILES['file_upload']['tmp_name'];    
       $newname='"temp_images/'.$random_name.'"';      
       rename($from, $newname);  Problm is here????? 
            //move_uploaded_file($from, $newname); Even tried this 

      } 
}  

}Problème dans le script de téléchargement php?

Je ne sais pas pourquoi les images ne bougent pas dans temp_images folder..Can personne aider me.thanks à l'avance.

Edit:

formulaire HTML:

<form name="form_upload" action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data"> 
             <table class='nryo_modal_div_table' align='center'> 
<tr> 
<td align='left' class='response_color_ok'> 
Select File: 
    </td>            </tr>          <tr> 

+0

Pouvez-vous envoyer votre formulaire html aussi? – Jage

Répondre

1

Assurez-vous que temp_images dossier dispose des autorisations d'écriture; chmod à 755.

Assurez-vous également que vous avez spécifié enctype = multipart sur le formulaire utilisé pour télécharger les images.

+0

Je ne me suis jamais soucié des permissions d'un dossier, j'utilise Windows et Apache et nous créons simplement un dossier et écrivons le code à cet effet. Par défaut, chaque fois que j'utilise un code comme celui-ci, cela fonctionne toujours .. Je ne sais pas ce qui s'est passé –

+0

Si ce code a toujours fonctionné avant, et ne fonctionne pas sur un nouveau dossier ou projet, il est presque définitivement un problème de permissions . – jaywon

+0

comment puis-je changer la permission d'un dossier en utilisant le script php .. ??? –

0

Vous pouvez essayer d'utiliser la fonction move_uploaded_file au lieu de la fonction renommer. Comme indiqué par sarfraz, vérifiez également que le dossier temp_images dispose des autorisations appropriées.

Quelque chose comme ce que je fais habituellement:

if(move_uploaded_file($_FILES['file_upload']['tmp_name'], $newname)) { 
    //move okay 
}else{ 
    //move not okay 
} 

Pour modifier les autorisations d'un dossier prendre programme un regard sur la fonction PHP chmod()

+0

comment puis-je changer les autorisations d'un dossier en utilisant le script php .. !!! –

+0

pour modifier les permissions sur un dossier, jetez un coup d'oeil à la fonction chmod() en PHP – jaywon

Questions connexes