2010-08-24 7 views
0

J'ai un formulaire PHP qui insère des informations dans une base de données. Tout fonctionne à l'exception du téléchargement de fichier. Le nom de fichier doit être placé dans la colonne "image" de la table de la base de données et le fichier doit également être placé dans le répertoire. Chose amusante, c'est que ce téléchargeur travaillait hier. : -SFormulaire PHP ne pas télécharger le fichier

S'il vous plaît quelqu'un peut-il juste revoir mon code PHP et voir si il me manque quelque chose ?? Merci beaucoup!!

CODE FORMULAIRE:

<form name="upload_announcement" method="post" action="PostAnnouncement.php"> 
Title: (limit 35 characters)<br /> 
<input type="text" name="title" maxlength="32" style="width:200px;" /><br /><br /> 
Message: (limit 500 html characters)<br /> 
<textarea name="message" cols="60" rows="20"></textarea><br /><br /> 
Upload Image: (Specs: .jpg format, 255px X 255px, and less than 500kb in size.)<br /> 
<input type="file" name="image" id="image" style="color:#fff;" /> 
<br /><br /> 
Start Date:<br /> 
<input name="dateStart" type="text" id="dateStartImg" /> 
<br /><br /> 
End Date:<br /> 
<input name="dateEnd" type="text" id="dateEndImg" /> 
<br /><br /> 
<input type="hidden" name="customerId" value="<?php echo $_COOKIE['customerId']; ?>" /> 
<input type="submit" name="upload" value="Upload Announcement" /> 
</form>` 

SUBMIT CODE:<br /> 
`include('ConfigRead.php'); 

$customerId = $_COOKIE['customerId']; 
$select = mysql_query('select filingName from user where customerId = '.$customerId.' limit 1') or die('Error: ' . mysql_error()); 
$selectRow = mysql_fetch_array($select); 
$filingName = $selectRow['filingName']; 
$imageFileName = $_FILES['image']['name']; 

if((($_FILES["image"]["type"] == "image/gif") 
|| ($_FILES["image"]["type"] == "image/jpeg") 
|| ($_FILES["image"]["type"] == "image/pjpeg")) 
&& ($_FILES["image"]["size"] < 500000)) 
{ 
    if($_FILES["image"]["error"] > 0){ 
    header("location:Announcements.php?file=error"); 
    }else{ 
    move_uploaded_file($_FILES["image"]["tmp_name"], 
    "../Admin/CustomerFiles/Announcements/" . $filingName . "/" . $imageFileName); 
    } 
}else{ 
    header("location:Announcements.php?file=error"); 
} 

$sql="INSERT INTO announcements (customerId, filingName, title, message, image, dateStart, dateEnd) VALUES ('$_POST[customerId]','$filingName','$_POST[title]','$_POST[message]','$imageFileName','$_POST[dateStart]','$_POST[dateEnd]')"; 

if (!mysql_query($sql,$connRead)) 
    { 
    die('Error: ' . mysql_error()); 
    } 

include('CloseConnRead.php'); 

header("location:ManageAnnouncements.php?add=success");` 

Répondre

7

Ajouter le multipart/form-data enctype à votre formulaire lorsque le téléchargement de fichiers

<form name="upload_announcement" method="post" enctype="multipart/form-data" action="PostAnnouncement.php"> 
+0

Oh mon ... il doit être en retard ou quelque chose. Je pensais que je devenais fou - devinez que j'ai enlevé accidentellement cela ou quelque chose. Eh bien, merci beaucoup pour l'aide! Je reviendrai dans environ 8 minutes pour "vérifier" la réponse et vous donner le crédit pour la réponse. Merci encore! – RyanPitts

0

Disposez-vous file_uploads activé dans votre php.ini (ou en utilisant ini_set)? La taille de fichier est-elle plus grande que l'option de configuration upload_max_filesize dans php.ini?

Regardez dans ces autres aussi:

  • max_input_time
  • memory_limit
  • max_execution_time
  • post_max_size
+0

La réponse ci-dessus était mon problème. J'ai juste oublié de mettre l'enctype dans le formulaire. – RyanPitts

+0

'memory_limit' et' max_execution_time' ne sont pas référencés dans http://php.net/manual/fr/features.file-upload.post-method.php. Où les avez-vous obtenus? EDIT: Maintenant, je vois 'memory_limit' est référencé à http://php.net/manual/fr/ini.core.php#ini.post-max-size –

Questions connexes