0

マークアップ

<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 機能が動作していないようです。ただし、リンク解除機能は正常に機能しています。クエリを実行すると、フォルダーから画像が削除されますが、ファイルはアップロードされません。insertpost 関数ではファイル フィールドに値属性がないため、これを Insert Post 関数で使用すると、アップロード関数は完全に正常に動作することに注意してください。しかし、updatepost では、ファイル フィールドで既存の画像を呼び出す必要があり、更新時に画像をアップロードして保存しない理由がわかりません。

また、クロムのデバッグで確認$postImageしたところ、値属性に画像の名前が表示されています。もう1つのことは、投稿を更新中に新しい画像を選択した場合です。その後、すべてが正常に機能します。しかし、投稿を更新し、既存の画像を投稿へのリンクのままにしたい場合、機能しません

正しい解決策を見つけるのを手伝ってください。$_FILESが値からファイルを取得しない理由がわかりません。ありがとう

4

0 に答える 0