标记
<input type='file' name="featured_image" onchange="readURL(this);" value="<?php echo $postImage; ?>" />
上传功能:
function upload() {
//To upload files
$errors=array();
$allowed_ext=array('jpg','jpeg','png','gif','pdf','');
$allowed_size=2097152; // 2mb max size
//Setting up $_FILE array into variables
$file_name=$_FILES['featured_image']['name'];
$file_explode=(explode('.', $file_name));
$file_ext=strtolower(end($file_explode));
$file_size=$_FILES['featured_image']['size'];
$file_tmp=$_FILES['featured_image']['tmp_name'];
//Validate if file type matched with our allowed extensions
if(!in_array($file_ext, $allowed_ext))
{
$errors[]="File Type not supported";
}
if($file_size > $allowed_size){
$errors[]="File size limit exceed";
}
if(empty($errors))
{
if(move_uploaded_file($file_tmp, 'images/featured/'.$file_name)){
$random=rand()*1200;
$file_random_name=$random.".".$file_ext;
rename("images/featured/".$file_name, "images/featured/".$file_random_name);
return $file_random_name;
} // end move uploaded files
} // end if empty errors
else
{
foreach ($errors as $key) {
echo $key;
}
}
}
更新查询:
unlink("images/featured/".$postImage);
$file_name=upload();
echo $file_name;
$Query="UPDATE blog_content SET blog_category_id='$blog_category_id',blog_content_headline='$blog_content_headline',blog_content_text='$blog_content_text',
featured_image='$file_name',content_tags='$content_tags',post_status='$post_status' WHERE blog_content_id='$blog_content_id'";
$Result=mysql_query($Query);
现在的问题是,当我运行执行更新功能时,它正在更新我的记录而没有$featured_image
. 似乎 Fileupload 函数在更新查询中不起作用。虽然,取消链接功能工作正常。当我运行查询时,它会从文件夹中删除图像,但不会上传文件。请注意,当我在 Insert Post 函数中使用它时,上传功能完全正常,因为在 insertpost 函数中,文件字段中没有 value 属性。但是在 updatepost 我必须调用文件字段中的现有图像,我不知道为什么它没有在更新时上传和保存图像。
我还$postImage
通过 chrome 调试进行了检查,它在 value 属性中显示了我的图像名称。还有一件事是,如果我在更新我的帖子时选择了一张新图片。然后一切正常。但是,如果我更新帖子并且我希望现有图像与我的帖子保持链接,那么它就不起作用
请帮助我找到正确的解决方案。我无法弄清楚为什么$_FILES
没有从价值中提取文件。谢谢