マークアップ
<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
が値からファイルを取得しない理由がわかりません。ありがとう