Reputation: 83
I have a simple form for creating an article: Title,image,category,body , etc.. My problem is with the image input.
Selecting a new one and submitting everything works fine:
By editing the whole form, filling all fields but leaving the image field as it is, and finally submitting, the image field value in db is changing to nothing.
How can i configure the php file, so every time the user submits the form without selecting an image (if there was an image pre uploaded in that article ) keep as submitted the previous image (from db) instead of nothing.?
If these informations can be of any help:
I can print the image like this : <?php echo '<img src="'.$results['article']->img.'" width="100px">'; ?>
Simple input field for image:
<input type="file" name="fileToUpload" id="fileToUpload" value="<?php echo $results['article']->img ?>" />
Upvotes: 8
Views: 11310
Reputation: 232
What about something like this?
if(!empty($_FILES['fileToUpload']['name'])) //new image uploaded
{
//process your image and data
$sql = "UPDATE table SET name=?, image=?,... WHERE id = ?";//save to DB with new image name
}
else // no image uploaded
{
// save data, but no change the image column in MYSQL, so it will stay the same value
$sql = "UPDATE table SET name=?,... WHERE id = ?";//save to DB but no change image column
}
//process SQL query in $sql
Upvotes: 7
Reputation: 1
It worked , really thanks
short solution
if(!empty($_FILES['fileToUpload']['name']))
CONCLUSION
Next time when you update any other field the image won't get disappeared, meaning file path wont be empty in your database, and if already present it won't change unless you manually change it..
Upvotes: 0
Reputation: 96
Make a if clause that checks if fileupload input is empty or not. If it is empty do not execute query.
Use input type="file" without attribute value.
<input type="file" name="fileToUpload" id="fileToUpload" />
Here is example for if clause
if(!empty($_FILES['fileToUpload']['name'])) {
$origFile = $_FILES['fileToUpload']['name'];
$tempFile = $_FILES['fileToUpload']['tmp_name'];
$sizeFile = $_FILES['fileToUpload']['size'];
/* UPLOAD CODE GOES HERE */
}
Upvotes: 2