php d'upload de fichier d'erreur de 1 - Quelle est la façon correcte d'utiliser php_ini?
Je vais avoir des problèmes lors du téléchargement d'un fichier pdf sur mon serveur. Le upload_max_filesize est de 2M et le ou les fichier(s) sont plus alors que, autour de 4M. J'ai trouvé un post avec une question similaire à la mienne ici
Ce que je peux recueillir à partir de php.net pour l'utilisation correcte de la fonction ini_set commandes est ce, que je suis en train de l'utiliser.
ini_set('upload_max_filesize', 100000000);
ini_set('post_max_size', 110000000);
ini_set('memory_limit', 120000000);
ini_set('max_input_time', 20);
Mais dans le lien que j'ai posté, il semble qu'ils sont à l'aide d'une méthode différente (si ils ne sont pas seulement résumant le bon code). Mais Il semble que mon code ne fonctionne pas comme il est. J'ai <?php phpinfo(); ?>
au bas de ma page et il est dit que le upload_max_filesize est encore 2M. Suis-je à l'aide de la syntaxe correcte pour la fonction ini_set? ou est mon problème avec l'upload de mes fichiers pdf quelque chose d'autre?
Mon code de la manipulation de l'upload est
//======================pdf upload=====================
if ($_POST['erasePDF'] == "Yes") //checking if erase box was checked and erasing if true
{
if (file_exists($pdf))
{
unlink( $pdf );
$pdf = "";
}
}
print_r($_FILES['pdf']);
if (!empty($_FILES['pdf']['name'])) //checking if file upload box contains a value
{
$saveDirectoryPDF = 'pdfs/'; //name of folder to upload to
$tempName = $_FILES['pdf']['tmp_name']; //getting the temp name on server
$pdf = $_FILES['pdf']['name']; //getting file name on users computer
$test = array();
$test = explode(".", $pdf);
if((count($test) > 2) || ($test[1] != "pdf" && $test[1] != "doc" && $test[1] != "docx")){
echo "invalid file";
}else{
$count = 1;
do{
$location = $saveDirectoryPDF . $count . $pdf;
$count++;
}while(is_file($location));
if (move_uploaded_file($tempName, $location)) //Moves the temp file on server
{ //to directory with real name
$pdf = $location;
}
else
{
echo "hi";
echo '<h1> There was an error while uploading the file.</h1>';
}
}
}else{
$pdf = "";
}
if(isset($_POST['link']) && $_POST['link'] != ""){
$pdf = $_POST['link'];
}
//======================end of pdf upload==============
La sortie de la ligne 'print_r($_FILES['pdf']); " est
Array ( [name] => takeoutmenu.pdf [type] => [tmp_name] => [error] => 1 [size] => 0 )
OriginalL'auteur d.lanza38 | 2011-11-21
Vous devez vous connecter pour publier un commentaire.
Certains fournisseurs ne vous permet pas de modifier certaines valeurs en temps d'exécution. Au lieu de cela, essayez de changer dans le réel php.fichier ini ou utiliser un .htaccess (Pour les serveurs web Apache) où vous pouvez ajouter votre configuration. Vous pouvez trouver plus d'informations dans le PHP.net un article sur ce sujet: Comment modifier les paramètres de configuration.
Basé sur votre histoire, par exemple .htaccess
Oui, votre directive Apache pour que l'hôte doit avoir
AllowOverride All
.J'ai utilisé ce que le contenu de mon .fichier htaccess - je ne sais pas comment bien le mettre dans le code des crochets [code]<Directory /> Allowoverride All </Directory> <IfModule mod_php5.c> php_value upload_max_filesize 100000000 php_value post_max_size 110000000 php_value memory_limit 120000000 php_value max_input_time 20 </IfModule>[/code]je me disais avec la syntaxe que j'ai proposée est-ce correct ou étiez-vous à l'aide de mon hypothèse pour le code que vous m'avez donné?
Le
Allowoverride All
directive devrait être danshttpd.conf
fichier.Ahh, si ce n'est pas définie dans le httpd.fichier conf puis ma seule option est d'une certaine façon contactez l'administrateur du serveur? Et demandez-lui de modifier la configuration dans le réel php.ini, le fichier httpd.fichier conf, ou de me donner l'accès à l'un de ces?
OriginalL'auteur 0xd