2009-10-21 7 views
1

Lors du téléchargement du fichier en php, je n'arrive pas à télécharger tous les types de fichiers, s'il y a un espace entre les noms de fichiers qui ne peuvent pas être téléchargés. S'il vous plaît quelqu'un peut-il corriger ce codeErreur lors du chargement du fichier en PHP

ici est mon code de téléchargement

<?php 

$target_path = "../mt/sites/default/files/ourfiles/"; 

$target_path = $target_path . basename($_FILES['uploadedfile']['name']); 

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { 
    echo "The file ". basename($_FILES['uploadedfile']['name']). 
    " has been uploaded"; 
} else{ 
    echo "There was an error uploading the file, please try again!"; 
} 



$con = mysql_connect("localhost","mt","mt"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    }else{ 
echo "Connected"; 
} 

// Create table 
mysql_select_db("mt", $con); 

mysql_query("INSERT INTO mt_upload (FileName, FilePath) 
VALUES ('".basename($_FILES['uploadedfile']['name'])."', '".$target_path.basename($_FILES['uploadedfile']['name'])."')"); 


// Execute query 
mysql_query($sql,$con); 

mysql_close($con); 



?> 
+0

Renommez le titre en 'PHP Upload filename avec un problème d'espaces *. Et mettez la description dans la question. – Egon

Répondre

0

Je ne sais pas si cela fonctionne, mais essayez de changer de ligne 2 à ceci:

$target_path = $target_path . basename(urldecode ($_FILES['uploadedfile']['name'])); 
1

faire une vérification et validation le fichier u télécharger des

ci-dessous le script peut aider u:

// 5MB maximum file size 
$MAXIMUM_FILESIZE = 5 * 1024 * 1024; 
// Valid file extensions (images, word, excel, powerpoint) 
$rEFileTypes = 
    "/^\.(jpg|jpeg|gif|png|doc|docx|txt|rtf|pdf|xls|xlsx| 
     ppt|pptx){1}$/i"; 
$dir_base = "/your/file/location/"; 

$isFile = is_uploaded_file($_FILES['Filedata']['tmp_name']); 
if ($isFile) // do we have a file? 
    {// sanatize file name 
    //  - remove extra spaces/convert to _, 
    //  - remove non 0-9a-Z._- characters, 
    //  - remove leading/trailing spaces 
    // check if under 5MB, 
    // check file extension for legal file types 
    $safe_filename = preg_replace( 
        array("/\s+/", "/[^-\.\w]+/"), 
        array("_", ""), 
        trim($_FILES['Filedata']['name'])); 
    if ($_FILES['Filedata']['size'] <= $MAXIMUM_FILESIZE && 
     preg_match($rEFileTypes, strrchr($safe_filename, '.'))) 
     {$isMove = move_uploaded_file ( 
       $_FILES['Filedata']['tmp_name'], 
       $dir_base.$safe_filename);} 
     } 
    } 
Questions connexes