我正在開發一個新聞網站,它的數據庫有4列稱爲ID,標題,職位和views.And我想爲我的每篇文章有一個圖像我該如何編輯我的數據庫?如何將圖像文件上傳到現有數據庫?
我可以像上傳其他信息一樣從表單上傳照片。我的意思是我會用INSERT INTO
。我希望我能解釋一下。
感謝您的幫助。
我正在開發一個新聞網站,它的數據庫有4列稱爲ID,標題,職位和views.And我想爲我的每篇文章有一個圖像我該如何編輯我的數據庫?如何將圖像文件上傳到現有數據庫?
我可以像上傳其他信息一樣從表單上傳照片。我的意思是我會用INSERT INTO
。我希望我能解釋一下。
感謝您的幫助。
是的,您可以像其他信息一樣將圖像插入數據庫。爲此,您必須爲數據庫屬性使用blob數據類型。之後,你的圖像將被保存到數據庫中。 如果您需要更新您的現有表,那麼您必須更改您的數據庫表。爲此,您可以像下面給出的那樣進行查詢。
alter table table_name add `image` mediumblob NOT NULL
請通過此鏈接,你會發現它很有幫助。 http://www.anyexample.com/programming/php/php_mysql_example__image_gallery_(blob_storage).xml
你能解釋一下如何在現有的數據庫上做到這一點嗎 –
@BurakDemirelli我已經更新了我的答案。請檢查它並讓我爲你工作? – Shujaat
您應該添加一個新列,名爲圖片。有幾種方法可以做到這一點。
要上傳圖片,您應該添加enctype = multipart/form-data到表單。然後你可以使用$ _FILES來處理文件上傳。是的,您可以使用$ _POST作爲$ _POST值的相同方式,但對於需要使用$ _FILES的圖像。
一個真的真的很簡單的解決方案:
HTML:
<form method="POST" enctype="multipart/form-data">
<input type="file" name="image">
而且不要忘了提交,當然。但要確保你在這個表單中放置了一個type =「file」。
<?php
if(isset($_FILES['image'])) {
$file_name = $_FILES['image']['name'];
$file_tmp = $_FILES['image']['tmp_name'];
move_uploaded_file($file_tmp, "images/" . $file_name);
}
您可以使用相同的代碼,你沒有,但你只需要添加文件上傳處理。
是的,你可以保存圖片到你的數據庫中blob
格式:
INSERT INTO news(id,image) VALUES(1,LOAD_FILE('path/to/image'));
或者你可以存儲唯一的價值爲news
表,image_name
列。該值與實際圖像名稱關聯,例如123456.jpg
。然後,您可以根據以前存儲的image_name
加載應用程序中的圖像。
在database
<form action="php.php" method="post" enctype="multipart/form-data">
<input type="file" name="image">
<input type="submit" name="sub_pic">
</form>
php.php使用的數據類型VARCHAR
與大小250
if (isset($_POST['sub_pic'])) {
$image_dir = './image/'; //directory you want your image to be saved
$imagename = $_FILES['image']['name'];
$imagetempname = $_FILES['image']['tmp_name'];
$imagetype = $_FILES['image']['type'];
$imagesize = $_FILES['image']['size'];
$imagepath = $image_dir . $imagename; //store image path for access
$imageresult = move_uploaded_file($imagetempname, $imagepath); //combine also for access
//if it fails tell the user something
if (!$imageresult)
{
echo "<script>alert('Error uploading banner!!..Please try again')</script>";
exit();
}
if (!get_magic_quotes_gpc())
{
$imagename = addslashes($imagename);
$imagepath = addslashes($imagepath);
}
//query to insert into database
$query = mysqli_query("INSERT INTO table (image) VALUES ('$imagepath')");
}
最好的方法是將文件名存儲在數據庫中,並保存實際的文件在你的文件系統。然後,您可以引用數據庫中的文件名並在您的文件系統中找到並檢索它。可以將圖像保存到數據庫中,但實際上並不推薦。要做到這一點,你可以使用MySQL的'blob'類型。有關更多信息,請參閱此頁面:https://dev.mysql.com/doc/refman/5.7/en/blob。html –
這裏有點大了,爲什麼不先回答這個問題:你是否只需要在上傳文件後將圖像路徑存儲在數據庫中,或者你是否想要對圖像進行編碼以將它們直接存儲在基礎? – Kaddath
我不明白我猜。你推薦我使用我的託管,數據庫或其他東西? –