文件上载在更新查询中不起作用

时间:2013-07-31 01:06:39

标签: php

标记

<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函数在更新查询中不起作用。虽然,unlink功能正常。当我运行查询时,它会删除文件夹中的图像,但不会上传文件。 请注意,当我在Insert Post函数中使用它时,上传功能完全正常,因为在insertpost函数中,文件字段中没有值属性。但是在updatepost上我必须调用文件字段中的现有图像,我不知道它为什么不在更新时上传和保存图像。

我还通过chrome调试检查了$postImage,并在value属性中显示了我的图片名称。 还有一件事是,如果我在升级我的帖子时选择一个新图像。一切正常。但如果我更新帖子,我希望现有的图像保持链接与我的帖子,然后它不工作

请帮我找到合适的解决方案。我不清楚为什么$_FILES没有从值中获取文件。 感谢

0 个答案:

没有答案