新聞中心
在如今這個(gè)數(shù)字化的時(shí)代,我們已經(jīng)習(xí)慣了使用圖片來豐富我們的內(nèi)容和體驗(yàn)。 在許多應(yīng)用程序中,需要向服務(wù)器上傳圖像并存儲(chǔ)它們以便與其他用戶共享或?qū)⑵溆糜谝院蟆?許多初學(xué)者可能會(huì)感到困惑,不知道如何將圖片上傳到服務(wù)器并將其存儲(chǔ)到數(shù)據(jù)庫中。 本文將介紹如何使用PHP和MySQL將圖片上傳并存儲(chǔ)到數(shù)據(jù)庫中。
創(chuàng)新新互聯(lián),憑借10余年的成都網(wǎng)站建設(shè)、做網(wǎng)站經(jīng)驗(yàn),本著真心·誠心服務(wù)的企業(yè)理念服務(wù)于成都中小企業(yè)設(shè)計(jì)網(wǎng)站有上千案例。做網(wǎng)站建設(shè),選創(chuàng)新互聯(lián)。
之一步:設(shè)置上傳表單
在HTML中設(shè)置上傳表單,并確保使用的屬性和值適用于您的應(yīng)用程序的需求。 在表單中,我們需要一個(gè)文件上傳字段和一個(gè)提交按鈕。 代碼示例如下:
“`
“`
第二步:上傳圖片
當(dāng)表單提交時(shí),需要處理上傳的文件并將其保存到服務(wù)器中。 PHP提供了一種內(nèi)置函數(shù)`move_uploaded_file`,可以將上傳的文件移動(dòng)到指定的目錄中。 以下代碼演示如何使用此函數(shù)將文件保存到服務(wù)器中:
“`
if(isset($_POST[‘submit’])) {
$name = $_FILES[‘image’][‘name’];
$target_dir = “uploads/”;
$target_file = $target_dir . basename($_FILES[“image”][“name”]);
if (move_uploaded_file($_FILES[“image”][“tmp_name”], $target_file)) {
echo “The file “. basename( $_FILES[“image”][“name”]). ” has been uploaded.”;
} else {
echo “Sorry, there was an error uploading your file.”;
}
}
“`
在上面的代碼中,我們首先獲取上傳文件的名字,并創(chuàng)建一個(gè)名為“uploads”的目錄用于存儲(chǔ)上傳的文件。 然后,我們使用`move_uploaded_file`函數(shù)將上傳的文件保存到服務(wù)器的“uploads”目錄中。
第三步:將圖片信息存儲(chǔ)到數(shù)據(jù)庫中
我們已經(jīng)成功上傳了圖像,并將其保存到服務(wù)器上。 接下來,我們需要將相關(guān)的信息存儲(chǔ)到數(shù)據(jù)庫中。 以下是在MySQL中創(chuàng)建存儲(chǔ)圖像信息的表的示例代碼:
“`
create table images (
id int(11) auto_increment primary key,
title varchar(200) not null,
image varchar(200) not null,
created datetime
);
“`
在上面的代碼中,我們創(chuàng)建了一個(gè)名為“images”的表,用于存儲(chǔ)上傳的圖像的信息,包括ID,圖像名稱,路徑和創(chuàng)建日期。
接下來,我們需要編寫SQL查詢來將上傳的圖像信息存儲(chǔ)到表中。 以下代碼演示如何將上傳的圖像信息存儲(chǔ)到我們創(chuàng)建的表中:
“`
if(isset($_POST[‘submit’])) {
$title = $_POST[‘title’];
$image = $_FILES[‘image’][‘name’];
// image file directory
$target_dir = “uploads/”;
// get image extension
$image_extension = strtolower(pathinfo($target_dir . $image,PATHINFO_EXTENSION));
// valid image extensions
$extensions_arr = array(“jpg”,”jpeg”,”png”,”gif”);
// check if uploaded file extension is a valid image extension
if( in_array($image_extension, $extensions_arr) ){
// insert record into database
$query = “INSERT INTO images(title,image,created) VALUES(‘$title’,’$target_dir$image’,now())”;
mysqli_query($con,$query);
// move the uploaded image to uploads directory
move_uploaded_file($_FILES[‘image’][‘tmp_name’],$target_dir.$image);
}
}
“`
在上面的代碼中,我們首先從上傳的表單中獲取標(biāo)題和圖像的名稱。 然后,我們使用`strtolower`函數(shù)獲取圖像的擴(kuò)展名并將其存儲(chǔ)在變量`$image_extension`中。 接下來,我們創(chuàng)建一個(gè)名為“extensions_arr”的數(shù)組,用于存儲(chǔ)有效的圖像擴(kuò)展名。 我們使用`in_array`函數(shù)檢查上傳的文件擴(kuò)展名是否為有效圖像擴(kuò)展名之一。 如果是,我們使用INSERT查詢向表中插入新記錄,并指定標(biāo)題,圖像路徑和創(chuàng)建日期。 我們使用`move_uploaded_file`函數(shù)將上傳的文件移動(dòng)到服務(wù)器上。
第四步:在網(wǎng)頁上顯示上傳的圖像
我們已經(jīng)成功地將圖像上傳并將其相關(guān)信息存儲(chǔ)到數(shù)據(jù)庫中。 接下來,我們需要從數(shù)據(jù)庫中檢索圖像信息,并在網(wǎng)頁上呈現(xiàn)它們。 以下是將在網(wǎng)頁上顯示上傳的圖像的PHP代碼:
“`
// connect to database
$con = mysqli_connect(“l(fā)ocalhost”,”username”,”password”,”database”);
// get records from the database
$query = “SELECT * FROM images ORDER BY id DESC”;
$result = mysqli_query($con,$query);
while($row = mysqli_fetch_array($result)){
echo “
“;
echo “
“.$row[‘title’].”
“;
echo ““;
echo “
Created on “.$row[‘created’].”
“;
echo “
“;
}
?>
“`
在上述代碼中,我們首先使用`mysqli_connect`函數(shù)連接到MySQL數(shù)據(jù)庫。 然后,我們使用SELECT查詢從“images”表中檢索記錄,并按ID倒序排序。 接下來,我們使用`mysqli_fetch_array`函數(shù)循環(huán)遍歷結(jié)果集,并在網(wǎng)頁上呈現(xiàn)每個(gè)記錄的標(biāo)題,圖像和創(chuàng)建日期。
結(jié)論
本文介紹了如何將圖像上傳到服務(wù)器并將相關(guān)信息存儲(chǔ)到MySQL數(shù)據(jù)庫中。 實(shí)際上,此過程并不難,但需要一些編程技能和經(jīng)驗(yàn)。 了解此過程的原理將有助于您更好地了解Web開發(fā)的工作原理。希望這篇文章對(duì)您有幫助。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線:028-86922220用aspupload如何同時(shí)上傳兩張圖片,并以新命名的方式把路徑保存到數(shù)據(jù)庫?求高手解決?
ajax異步。
圖1圖2分別異步提交圖片到后臺(tái)。新名字的話也是后臺(tái)備姿派處理的。圖片存在空間里,把圖片名存在數(shù)據(jù)庫里。輸出圖片名到前臺(tái)
前臺(tái)圖1圖2后面可分別設(shè)一個(gè)隱藏的 input 用來ajax返回各自的圖片名。
總的提交按仿賀鈕只提交隱藏的input即可。(input里是圖片名,可同時(shí)提交多個(gè)input)
暫無圖片在之一次加載html時(shí)加載。每一次ajax上傳圖片除了返回圖片名到對(duì)應(yīng)的input外,還同時(shí)js動(dòng)冊(cè)饑態(tài)輸出新img標(biāo)簽代替對(duì)應(yīng)的暫無圖片,新img標(biāo)簽要寫好完整的圖片地址。
asp中如何上傳多圖片并保存到數(shù)據(jù)庫中的不同字段.
無建議
求php同時(shí)上傳兩張圖片并根據(jù)時(shí)間存入數(shù)據(jù)庫!根據(jù)下面的代碼來修改!
先占個(gè)位置!看電視先。等等沒人的話就來!
這么晚了,我就說一種比較簡單的方法。
首先你要在html頁面上修改
Send these files:
//也就是多個(gè)input 你覺得不美觀的可以通過js控制,甚至可以生產(chǎn)縮略圖這樣頁面效果更好 可是不在問題之內(nèi)嘿嘿
//開始該php頁面 ,文件判定包括后綴名大小你好像都有了 這樣其實(shí)就很簡單的了 其實(shí)只要知道 $_FILES是一個(gè)數(shù)組就會(huì)的,一個(gè)處理和兩個(gè)一樣。因?yàn)槟銢]給html代碼 userfile具體指什么看我的html代碼
for($i=0;$i上傳錯(cuò)誤!為了保證瀏覽速度,系統(tǒng)只允許上傳小于150Kb的圖片!
請(qǐng)您將圖片壓縮、裁剪后再上傳,或者返回重新選擇圖片;’;
}elseif($file_chk==12){
$error=’上傳的圖片類型必須是: .gif、.jpg、.png格式!
‘;
}elseif($file_chk==13){
$error=’上傳錯(cuò)誤無效的圖片文件!
‘;
}elseif(!$file_chk){
$error=’上傳錯(cuò)誤!您沒有上傳圖片(請(qǐng)上傳.gif、.jpg、.png格式的圖片)!
請(qǐng)返回重新選擇圖片!’;
}else{
$posttime=time();
$content=’Merry+Christmas+and+Happy+New+Year+2023.’;
$filename=”uploadfile/”.$up_date.”/”.$file_chk;
$db->query(“insert into cdb_santa set picurl=’$filename’,content=’$content’,posttime=’$posttime'”);
$id=$db->insert_id();
$chk=true;
}
}}
剛沒仔細(xì)看你的php,我這么寫應(yīng)該還是有問題的,
你確定你這段語句沒錯(cuò)$file_chk=uploadfile(“FileUpload”,”uploadfile/”.$up_date.”/”,$_SERVER,150000,’jpg|gif|png’);??
這個(gè)方法應(yīng)該是用來檢測上傳的圖片的你什么也輸入進(jìn)去他怎么檢查啊 比如文件類型文件大小 文件名字?。。?!如果是你自己寫的方法請(qǐng)貼上來看看我好改 如果是別人的方法也請(qǐng)貼上來
我給你個(gè)簡單的吧 這個(gè)可以實(shí)現(xiàn)三個(gè)一起上傳 這個(gè)是我自己用的 做了點(diǎn)調(diào)整
uploadCore.php 頁面代碼
user_name_u = $uname;
//$this->user_name_y = $utype;
$this->user_post_file = $file;
$this->save_file_path = $path;
$this->max_file_size = $size; //如果用戶不填寫文件大小,則默認(rèn)為2M.
if ($type != ”)
$this->allow_type = $type;
}
/**
* 存儲(chǔ)用戶上傳文件,檢驗(yàn)合法性通過后,存儲(chǔ)至指定位置。
* @access public
* @return int 值為0時(shí)上傳失敗,非0表示上傳成功的個(gè)數(shù)。
*/
function upload() {
for ($i = 0; $i user_post_file); $i++) {
//如果當(dāng)前文件上傳功能,則執(zhí)行下一步。
if ($this->user_post_file == 0) {
//取當(dāng)前文件名、臨時(shí)文件名、大小、擴(kuò)展名,后面將用到。
$userty = $this->user_name_y;
$uuname = $this->user_name_u;
$name = $this->user_post_file;
$tmpname = $this->user_post_file;
$size = $this->user_post_file;
$mime_type = $this->user_post_file;
$type = $this->getFileExt($this->user_post_file);
//檢測當(dāng)前上傳文件大小是否合法。
if (!$this->checkSize($size)) {
$this->last_error = “這個(gè)文件的大小太大了. 您上傳的文件名: “.$name;
$this->halt($this->last_error);
continue;
}
//檢測當(dāng)前上傳文件擴(kuò)展名是否合法。
if (!$this->checkuplod($type)) {
$this->last_error = “允許上傳文件類型: .”.$type.” 您上傳的文件名: “.$name;
$this->halt($this->last_error);
continue;
}
//檢測當(dāng)前上傳文件是否非法提交。
if(!is_uploaded_file($tmpname)) {
$this->last_error = “文件非法提交. 您上傳的文件名: “.$name;
$this->halt($this->last_error);
continue;
}
//移動(dòng)文件后,重命名文件用。
$basename = $this->getBaseName($name, “.”.$type);
//移動(dòng)后的文件名
$saveas = $basename.”-“.time().”.”.$type;
//$saveas = $basename.”.”.$type;
//組合新文件名再存到指定目錄下,格式:存儲(chǔ)路徑 + 文件名 + 時(shí)間 + 擴(kuò)展名
$this->final_file_path = $this->save_file_path.”/”.$saveas;
if(!move_uploaded_file($tmpname, $this->final_file_path)) {
$this->last_error = $this->user_post_file;
$this->halt($this->last_error);
continue;
}
//存儲(chǔ)當(dāng)前文件的有關(guān)信息,以便其它程序調(diào)用。
$this->save_info = array(“uname” => $uuname,”name” => $name, “type” => $type,
“mime_type” => $mime_type,
“size” => $size, “saveas” => $saveas,
“path” => $this->final_file_path);
}
}
return count($this->save_info); //返回上傳成功的文件數(shù)目
}
/**
* 返回一些有用的信息,以便用于其它地方。
* @access public
* @return Array 返回最終保存的路徑
*/
function getSaveInfo() {
return $this->save_info;
}
/**
* 檢測用戶提交文件大小是否合法
* @param Integer $size 用戶上傳文件的大小
* @access private
* @return boolean 如果為true說明大小合法,反之不合法
*/
function checkSize($size) {
if ($size > $this->max_file_size) {
return false;
}
else {
return true;
}
}
/**
* 檢測用戶提交文件類型是否合法
* @access private
* @return boolean 如果為true說明類型合法,反之不合法
*/
function checkType($extension) {
foreach ($this->allow_type as $type) {
//echo “”;
//print_r($type);
//print_r($extension);
$str=substr($extension,strrpos($extension,’.’)+1);
//echo $str;
//exit();
if (strcasecmp($str, $type) == 0)
return true;
}
return false;
}
function checkuplod($extension) {
foreach ($this->allow_type as $type) {
//echo “”;
//print_r($type);
//print_r($extension);
//$str=substr($extension,strrpos($extension,’.’)+1);
//echo $str;
//exit();
if (strcasecmp($extension, $type) == 0)
return true;
}
return false;
}
/**
* 顯示出錯(cuò)信息
* @param $msg 要顯示的出錯(cuò)信息
* @access private
*/
function halt($msg) {
printf(” %s
\n”, $msg);
exit();
}
/**
* 取文件擴(kuò)展名
* @param String $filename 給定要取擴(kuò)展名的文件
* @access private
* @return String 返回給定文件擴(kuò)展名
*/
function getFileExt($filename) {
$stuff = pathinfo($filename);
return $stuff;
}
/**
* 取給定文件文件名,不包括擴(kuò)展名。
* eg: getBaseName(“j:/hexuzhong.jpg”); //返回 hexuzhong
*
* @param String $filename 給定要取文件名的文件
* @access private
* @return String 返回文件名
*/
function getBaseName($filename, $type) {
$basename = basename($filename, $type);
return $basename;
}
}
?>
調(diào)用和使用方法
$tmp=$Form;
require (‘uploadCore.php’);
//設(shè)置允許用戶上傳的文件類型。
$type = array(‘gif’, ‘jpg’, ‘png’, ‘zip’, ‘rar’, ‘txt’);
//實(shí)例化上傳類,之一個(gè)參數(shù)為用戶上傳的文件組、第二個(gè)參數(shù)為存儲(chǔ)路徑、
//第三個(gè)參數(shù)為文件更大大小。如果不填則默認(rèn)為2M
//第四個(gè)參數(shù)為充許用戶上傳的類型數(shù)組。如果不填則默認(rèn)為gif, jpg, png, zip, rar, txt, doc, pdf
$upload = new UploadFile($user_upload_file,$user_name, $pathy,, $type);
//print””;
//print_r($upload);
//上傳用戶文件,返回int值,為上傳成功的文件個(gè)數(shù)。
$num = $upload->upload();
if ($num != 0) {
//echo “上傳成功
“;
$jeff_upload_info=$upload->getSaveInfo();
//取得文件的有關(guān)信息,文件名、類型、大小、路徑。用print_r()打印出來。
//print_r($jeff_upload_info);
//print””;
//print_r($jeff_upload_info);
//exit();
//格式為: Array
// (
// => Array(
// => example.txt
// => txt
// => 526
// => j:/tmp/example.txt
//)
// )
//獲得文件保存路徑或者其他的信息
for ($jeff_upload_success_num = 0; $jeff_upload_success_num “;
//print_r($tmp);
$q_sql = data_insert($tmp,’hczb_zzwd’);//插入數(shù)據(jù)庫類
//print_r($q_sql);
//$jeff_upload_success_url = “\r\n”.’‘.$jeff_upload_info.”;
//$jeff_upload_success_img .= $jeff_upload_success_url; //獲得代碼
}
if($q_sql)
{
echo “window.location.href=’third.php’;”;
$_SESSION = 3;
}
else
{
echo “alert(‘sorry,操作失敗’);window.location.href=’third.php’;”;;
}
//echo $num.”個(gè)文件上傳成功”;
}
else {
echo “alert(‘sorry,上傳失敗,允許上傳的格式是:'”.$type.””);window.location.href=’third.php’;”;
}
表單調(diào)用:
附件序號(hào)
附件名稱
附件說明
附件一
附件二
附件三
有哪里不明白的 M我 告訴你
uploadfile自定義函數(shù)應(yīng)只能處理單張圖片上傳吧?
上傳錯(cuò)誤!為了保證瀏覽速度,系統(tǒng)只允許上傳小于150Kb的圖片!
請(qǐng)您將圖片壓縮、裁剪后再上傳,或者返回重新選擇圖片;’;
}elseif($file_chk==12){
$error=’上傳的圖片類型必須是: .gif、.jpg、.png格式!
‘;
}elseif($file_chk==13){
$error=’上傳錯(cuò)誤無效的圖片文件!
‘;
}elseif(!$file_chk){
$error=’上傳錯(cuò)誤!您沒有上傳圖片(請(qǐng)上傳.gif、.jpg、.png格式的圖片)!
請(qǐng)返回重新選擇圖片!’;
}else{
$posttime=time();
$content=’Merry+Christmas+and+Happy+New+Year+2023.’;
$filename=”uploadfile/”.$up_date.”/”.$file_chk;
//你原來的SQL有錯(cuò),應(yīng)是這樣
$db->query(“insert into cdb_santa(picurl,content,posttime) values(‘$filename’,’$content’,’$posttime’)”);
$id=$db->insert_id();
$chk=true;
}
}
}
?>
我覺得這個(gè)問題不難解決,在收到的$file中判斷一下是否是數(shù)組,如果是加一個(gè)循環(huán)就可以了
上傳幾個(gè)圖片存入數(shù)據(jù)庫中的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于上傳幾個(gè)圖片存入數(shù)據(jù)庫中,如何將圖片上傳并存儲(chǔ)到數(shù)據(jù)庫中?,用aspupload如何同時(shí)上傳兩張圖片,并以新命名的方式把路徑保存到數(shù)據(jù)庫?求高手解決?,asp中如何上傳多圖片并保存到數(shù)據(jù)庫中的不同字段.,求php同時(shí)上傳兩張圖片并根據(jù)時(shí)間存入數(shù)據(jù)庫!根據(jù)下面的代碼來修改!的信息別忘了在本站進(jìn)行查找喔。
創(chuàng)新互聯(lián)【028-86922220】值得信賴的成都網(wǎng)站建設(shè)公司。多年持續(xù)為眾多企業(yè)提供成都網(wǎng)站建設(shè),成都品牌建站設(shè)計(jì),成都高端網(wǎng)站制作開發(fā),SEO優(yōu)化排名推廣服務(wù),全網(wǎng)營銷讓企業(yè)網(wǎng)站產(chǎn)生價(jià)值。
名稱欄目:如何將圖片上傳并存儲(chǔ)到數(shù)據(jù)庫中?(上傳幾個(gè)圖片存入數(shù)據(jù)庫中)
當(dāng)前路徑:http://m.5511xx.com/article/cdjspoc.html


咨詢
建站咨詢
