2017-03-06 54 views
0

我正在開發一個新聞網站,它的數據庫有4列稱爲ID,標題,職位和views.And我想爲我的每篇文章有一個圖像我該如何編輯我的數據庫?如何將圖像文件上傳到現有數據庫?

我可以像上傳其他信息一樣從表單上傳照片。我的意思是我會用INSERT INTO。我希望我能解釋一下。

感謝您的幫助。

+0

最好的方法是將文件名存儲在數據庫中,並保存實際的文件在你的文件系統。然後,您可以引用數據庫中的文件名並在您的文件系統中找到並檢索它。可以將圖像保存到數據庫中,但實際上並不推薦。要做到這一點,你可以使用MySQL的'blob'類型。有關更多信息,請參閱此頁面:https://dev.mysql.com/doc/refman/5.7/en/blob。html –

+2

這裏有點大了,爲什麼不先回答這個問題:你是否只需要在上傳文件後將圖像路徑存儲在數據庫中,或者你是否想要對圖像進行編碼以將它們直接存儲在基礎? – Kaddath

+0

我不明白我猜。你推薦我使用我的託管,數據庫或其他東西? –

回答

0

是的,您可以像其他信息一樣將圖像插入數據庫。爲此,您必須爲數據庫屬性使用blob數據類型。之後,你的圖像將被保存到數據庫中。 如果您需要更新您的現有表,那麼您必須更改您的數據庫表。爲此,您可以像下面給出的那樣進行查詢。

alter table table_name add `image` mediumblob NOT NULL 

請通過此鏈接,你會發現它很有幫助。 http://www.anyexample.com/programming/php/php_mysql_example__image_gallery_(blob_storage).xml

+0

你能解釋一下如何在現有的數據庫上做到這一點嗎 –

+0

@BurakDemirelli我已經更新了我的答案。請檢查它並讓我爲你工作? – Shujaat

0

您應該添加一個新列,名爲圖片。有幾種方法可以做到這一點。

要上傳圖片,您應該添加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); 
} 

您可以使用相同的代碼,你沒有,但你只需要添加文件上傳處理。

0

是的,你可以保存圖片到你的數據庫中blob格式:

INSERT INTO news(id,image) VALUES(1,LOAD_FILE('path/to/image')); 

或者你可以存儲唯一的價值爲news表,image_name列。該值與實際圖像名稱關聯,例如123456.jpg。然後,您可以根據以前存儲的image_name加載應用程序中的圖像。

0

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')"); 


}