あなたの中には正しい方法ではないが、アプリケーションを終了するための締め切り期限があり、今のところ私は戻ることができず、ディレクトリ内の画像。ザッツは正しい方法でデータベースに画像をアップロードする
私はこれを入力することで画像をデータベースに挿入されていた問題をクリアしていることになりました
。
は
$filename = $security->secure($_FILES['imgschool']['name']);
$tmpname = $security->secure($_FILES['imgschool']['tmp_name']);
$imgsize = $security->secure($_FILES['imgschool']['size']);
$imgtype = $security->secure($_FILES['imgschool']['type']);
$school = $security->secure($_POST['school']);
//begin upload
if($imgsize > 0) {
$handle = fopen($tmpname, "r");
$content = fread($handle, filesize($tmpname));
$content = addslashes($content);
//code to add all this to database
}
変数$コンテンツは画像であり、そのすべての取得はにaddslashesである(、すべてのことは、データが有効であれば、いくつかのチェックでやっているクラスのセキュリティコールを気にいけません)。私はbase64と呼ばれるものを使って言及している人がいることを覚えていますが、それがどのように書き込まれたかをほとんど思い出すことはできません。
これはさておき、すべてのクエリとその他もろもろ から、これは私が午前問題がある
header("Content-length: ".$imgsize);
header("Content-type: ".$imgtype);
header("Content-Disposition: attachment; filename=".$imgname);
print $row['img'];
画像を呼び出している主要部分である私は、データベース
から画像を呼び出しています方法ですそれは画像の代わりに表示されます。 URLに設定され、正しいのparamsで画像を表示するページを開いたときに、この場合、私はこれだけ
http://localhost/admin/school-catalog.php?page=gallery&id=4
を参照してくださいので、URLだけで、表示されます。私は全体のセクションaddslashes
を使用して
//save image to db
if(isset($_POST['btnupload'])) {
$filename = $security->secure($_FILES['imgschool']['name']);
$tmpname = $security->secure($_FILES['imgschool']['tmp_name']);
$imgsize = $security->secure($_FILES['imgschool']['size']);
$imgtype = $security->secure($_FILES['imgschool']['type']);
$school = $security->secure($_POST['school']);
//begin upload
if($imgsize > 0) {
$handle = fopen($tmpname, "r");
$content = fread($handle, filesize($tmpname));
$content = base64_encode($content);
}
$save = mysql_query("insert into tbl_schoolgallery(id,hash,img,imgtype,imgsize) values(null,'$school','$content','$imgtype','$imgsize')") or die(mysql_error());
header("Location: school-catalog.php?page=school_gallery");
}
//call image from db
$query = mysql_query("select * from $tbl where id = '$id'") or die(mysql_error());
while($row = mysql_fetch_assoc($query)) {
$imgtypeget = explode("/", $row['imgtype']);
$imgname = "img.".$imgtypeget[1];
$imgtype = $row['imgtype'];
$imgsize = $row['imgsize'];
header("Content-length: ".$imgsize);
header("Content-type: ".$imgtype);
print base64_decode($row['img']);
print $row['img'];
}
print $ contentを使用してはいけませんか? –
データベースから画像を呼び出すため、私は気にしません – SarmenHB
コードの一部とデータサンプルが欠落していますが、img列に適切な値が含まれていることを確認してください。 –