Je viens de tester chez moi je te joins mes deux pages de code de test et ça marche.
J'ai modifier le code pour qu'il marche chez moi
Formulaire :
Code : Tout sélectionner
<html>
<head>
</head>
<body>
<form method="post" action="debug.php" enctype="multipart/form-data">
<label for="mon_fichier">Fichier (tous formats | max. 1 Mo) :</label><br />
<input type="hidden" name="MAX_FILE_SIZE" value="1048576" />
<input type="file" name="img_post" id="img_post" /><br />
<label for="titre">Titre du fichier (max. 50 caractères) :</label><br />
<input type="text" name="content" value="Titre du fichier" id="content" /><br />
<input type="submit" name="submit" value="Envoyer" />
</form>
</body>
</html>
Traitement du formulaire :
Code : Tout sélectionner
<?php
session_start();
$_POST['publish'] = "ok";
var_dump($_POST);
var_dump($_FILES);
var_dump(!empty($_FILES));
var_dump(isset($_POST['content']));
if(isset($_POST['publish'])){
if(!empty($_FILES) && (isset($_POST['content'])))
{
echo "DEBUT 1";
extract($_POST);
$content_dir = 'upload_post/'.uniqid().'/'; // dossier où sera déplacé le img_post
if (!file_exists($content_dir)) {
mkdir($content_dir, 0777, true);
}
$tmp_file = $_FILES['img_post']['tmp_name'];
if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}
// on vérifie maintenant l'extension
$type_file = $_FILES['img_post']['type'];
if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'png'))
{
exit("Le fichier n'est pas une image");
}
// on copie le img_post dans le dossier de destination
$name_file = $_FILES['img_post']['name'];
if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}
$img_post = $content_dir.$_FILES['img_post']['name'];
// $q = $db->prepare('INSERT INTO microposts(content,img_post, user_id,created_at) VALUES (:content,:img_post,:user_id,NOW())');
// $q->execute([
// 'content'=>$content,
// 'img_post'=>$img_post,
// 'user_id' => get_session('user_id')
// ]);
echo 'Votre statut a été mis a jour';
/*$to = '[email protected]';
$subject = 'Ma résidence étudiante';
$message = 'Un nouveau message a était publié dans la résidence, il peut peut etre vous intéresser http://studeamayol.maresidencetudiante.fr';
mail($to, $subject, $message);*/
}
else if(!empty($_POST['content']))
{
echo "DEBUT 2";
extract($_POST);
// $q = $db->prepare('INSERT INTO microposts(content,img_post, user_id,created_at) VALUES (:content,:img_post,:user_id,NOW())');
// $q->execute([
// 'content'=>$content,
// 'img_post'=>$img_post,
// 'user_id' => get_session('user_id')
// ]);
echo 'Votre statut a été mis a jour';
}
}
echo "END";
// redirect('profile.php?id='.get_session('user_id'));
?>
SI ça ne marche pas chez toi il est fort probable que ton php.ini
limite la taille des fichiers uploadable
et ton fichier doit être trop gros
Je viens de tester chez moi je te joins mes deux pages de code de test et ça marche.
J'ai modifier le code pour qu'il marche chez moi
Formulaire :
[code]<html>
<head>
</head>
<body>
<form method="post" action="debug.php" enctype="multipart/form-data">
<label for="mon_fichier">Fichier (tous formats | max. 1 Mo) :</label><br />
<input type="hidden" name="MAX_FILE_SIZE" value="1048576" />
<input type="file" name="img_post" id="img_post" /><br />
<label for="titre">Titre du fichier (max. 50 caractères) :</label><br />
<input type="text" name="content" value="Titre du fichier" id="content" /><br />
<input type="submit" name="submit" value="Envoyer" />
</form>
</body>
</html>[/code]
Traitement du formulaire :
[code]<?php
session_start();
$_POST['publish'] = "ok";
var_dump($_POST);
var_dump($_FILES);
var_dump(!empty($_FILES));
var_dump(isset($_POST['content']));
if(isset($_POST['publish'])){
if(!empty($_FILES) && (isset($_POST['content'])))
{
echo "DEBUT 1";
extract($_POST);
$content_dir = 'upload_post/'.uniqid().'/'; // dossier où sera déplacé le img_post
if (!file_exists($content_dir)) {
mkdir($content_dir, 0777, true);
}
$tmp_file = $_FILES['img_post']['tmp_name'];
if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}
// on vérifie maintenant l'extension
$type_file = $_FILES['img_post']['type'];
if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'png'))
{
exit("Le fichier n'est pas une image");
}
// on copie le img_post dans le dossier de destination
$name_file = $_FILES['img_post']['name'];
if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}
$img_post = $content_dir.$_FILES['img_post']['name'];
// $q = $db->prepare('INSERT INTO microposts(content,img_post, user_id,created_at) VALUES (:content,:img_post,:user_id,NOW())');
// $q->execute([
// 'content'=>$content,
// 'img_post'=>$img_post,
// 'user_id' => get_session('user_id')
// ]);
echo 'Votre statut a été mis a jour';
/*$to = '
[email protected]';
$subject = 'Ma résidence étudiante';
$message = 'Un nouveau message a était publié dans la résidence, il peut peut etre vous intéresser http://studeamayol.maresidencetudiante.fr';
mail($to, $subject, $message);*/
}
else if(!empty($_POST['content']))
{
echo "DEBUT 2";
extract($_POST);
// $q = $db->prepare('INSERT INTO microposts(content,img_post, user_id,created_at) VALUES (:content,:img_post,:user_id,NOW())');
// $q->execute([
// 'content'=>$content,
// 'img_post'=>$img_post,
// 'user_id' => get_session('user_id')
// ]);
echo 'Votre statut a été mis a jour';
}
}
echo "END";
// redirect('profile.php?id='.get_session('user_id'));
?>[/code]
SI ça ne marche pas chez toi il est fort probable que ton php.ini
limite la taille des fichiers uploadable
et ton fichier doit être trop gros