導航:首頁 > 編程大全 > 圖片添加資料庫mysql

圖片添加資料庫mysql

發布時間:2023-03-13 18:24:26

⑴ mysql怎麼添加圖片

圖片插入到資料庫不是個好方法,如果你確實要存儲圖片到資料庫的話,修改你的sql語句,不可以直接插入的。

INSERT into person(p_id,p_name,p_sex,p_age) value("asdsadssdsadfff","addsdsa","dddd",113);

update person set p_image = LOAD_FILE('D:\incident1.jpg') where p_id = "asdsadssdsadfff";

建議把'D:\incident1.jpg'放在mysl的安裝目錄裡面,避免許可權問題。。。

解釋:sql必須要有對 'D:\incident1.jpg'文件 和相應的路徑 讀許可權,要不也不可以的。 另外檢查LOAD_FILE 函數是否被禁用。這個函數是個危險的函數,很容易利用該函數對資料庫攻擊。

LOAD_FILE(file_name):
讀取file_name文件 並以字元串形式返回,使用這個函數時,file_name必須存在於伺服器上,而且是完整路徑,sql要具有file_name的讀取許可權,還有該文件的size必須小於資料庫 max_allowed_packet的值,否則讀取的值為空。如果文件不存在或者sql沒有讀許可權,那麼該函數講返回null

⑵ 在mysql中,如何將圖片insert進入資料庫

一般都是把圖片存在某個地方,然後資料庫存的是圖片路徑,用的時候取完路徑再顯示圖片

⑶ 如何將圖片儲存在MySQL資料庫里

解決方法一般有兩種:

1、將圖片保存的路徑存儲到資料庫;

2、將圖片以二進制數據流的形式直接寫入資料庫欄位中。

以下為具體方法:

一、保存圖片的上傳路徑到資料庫:
string
uppath="";//用於保存圖片上傳路徑
//獲取上傳圖片的文件名
string fileFullname =
this.FileUpload1.FileName;
//獲取圖片上傳的時間,以時間作為圖片的名字可以防止圖片重名
string
dataName =
DateTime.Now.ToString("yyyyMMddhhmmss");
//獲取圖片的文件名(不含擴展名)
string
fileName = fileFullname.Substring(fileFullname.LastIndexOf("\") +
1);
//獲取圖片擴展名
string type =
fileFullname.Substring(fileFullname.LastIndexOf(".") +
1);
//判斷是否為要求的格式
if (type == "bmp" || type == "jpg" || type == "jpeg"
|| type == "gif" || type == "JPG" || type == "JPEG" || type == "BMP" || type ==
"GIF")
{
//將圖片上傳到指定路徑的文件夾
this.FileUpload1.SaveAs(Server.MapPath("~/upload")
+ "\" + dataName + "." +
type);
//將路徑保存到變數,將該變數的值保存到資料庫相應欄位即可
uppath
= "~/upload/" + dataName + "." +
type;
}
二、將圖片以二進制數據流直接保存到資料庫:
引用如下命名空間:
using
System.Drawing;
using System.IO;
using
System.Data.SqlClient;
設計資料庫時,表中相應的欄位類型為iamge
保存:
//圖片路徑
string
strPath = this.FileUpload1.PostedFile.FileName.ToString
();
//讀取圖片
FileStream fs = new System.IO.FileStream(strPath,
FileMode.Open, FileAccess.Read);
BinaryReader br = new
BinaryReader(fs);
byte[] photo =
br.ReadBytes((int)fs.Length);
br.Close();
fs.Close();
//存入
SqlConnection
myConn = new SqlConnection("Data Source=.;Initial Catalog=stumanage;User
ID=sa;Password=123");
string strComm = " INSERT INTO
stuInfo(stuid,stuimage) VALUES(107,@photoBinary
)";//操作資料庫語句根據需要修改
SqlCommand myComm = new SqlCommand(strComm,
myConn);
myComm.Parameters.Add("@photoBinary", SqlDbType.Binary,
photo.Length);
myComm.Parameters["@photoBinary"].Value =
photo;
myConn.Open();
if (myComm.ExecuteNonQuery() >
0)
{
this.Label1.Text =
"ok";
}
myConn.Close();
讀取:
...連接資料庫字元串省略
mycon.Open();
SqlCommand
command = new
SqlCommand("select stuimage from stuInfo where stuid=107",
mycon);//查詢語句根據需要修改
byte[] image = (byte[])command.ExecuteScalar
();
//指定從資料庫讀取出來的圖片的保存路徑及名字
string strPath =
"~/Upload/zhangsan.JPG";
string strPhotoPath =
Server.MapPath(strPath);
//按上面的路徑與名字保存圖片文件
BinaryWriter bw = new
BinaryWriter(File.Open(strPhotoPath,FileMode.OpenOrCreate));
bw.Write(image);
bw.Close();
//顯示圖片
this.Image1.ImageUrl
= strPath;
採用這兩種方式可以根據實際需求靈活選擇。

⑷ 在網站後台用戶上傳的圖片如何獲得圖片路徑存入資料庫(mysql) (php解決) 急!!!

文件上傳後改名,並保存到指定的目錄
這樣一來路徑不就來了嗎
給個我以前寫的一個例子給你看看吧,代碼有點亂,將就著看吧,希望對你有點幫助。

if(isset($_FILES['upfile']) && is_uploaded_file($_FILES['upfile']['tmp_name']))
{
$filesize = $_FILES['upfile']['size']; //得到文件大小
$upfile_type = $_FILES['upfile']['type']; //文件類型
$upfile_temp = $_FILES['upfile']['tmp_name']; //臨時文件名
$upfile_name = $_FILES['upfile']['name']; //原文件名

$savePath = '/upload'; //文件保存目錄

$fs = strrpos($upfile_name,'.');//得到文件名後綴 str right position

if( $fs === false ) {
error('提取擴展名失敗!');
exit;
} else {
$fs = substr($upfile_name,$fs);
$fs = strtolower($fs);
}

//如:$fs(.jpg) => $ext(jpg)
$ext = substr($fs,1);

if(in_array($upfile_type,$sparr_image) || in_array( $ext,$sp_image) )
{//圖片
$mediatype=1;
$savePath .= '/image/';
mymkdir(SITE_ROOT.$savePath);
} else if(in_array($ext,$sp_doc)){ //word/wps文檔
$mediatype = 2;
$savePath .= '/doc/';
mymkdir(SITE_ROOT.$savePath);

} else if(in_array($ext,$sp_text)){ //文本文件
$mediatype = 3;
$savePath .= '/doc/';
mymkdir(SITE_ROOT.$savePath);
} else if(in_array($ext,$sp_rar)) { //壓縮文件
$mediatype = 4;
$savePath .= '/rar/';
mymkdir(SITE_ROOT.$savePath);
} else if(in_array($ext,$sp_execl)){
$mediatype = 5;
$savePath .= '/doc/';
mymkdir(SITE_ROOT.$savePath);
}else {
error("上傳文件失敗!<br>所上傳的文件類型不被允許!只允許上傳圖片、文檔及壓縮文件");
exit;
}

//構造新的文件名及完整路徑(我這里用登陸時的驗證碼和時間做為文件名)
$savePath .= date('Y');
$filename = $_SESSION['checkcode'].time().$fs; //驗證碼、時間、擴展名
$fullpath = SITE_ROOT.$savePath; //得到完整路徑
$url = $savePath.'/'.$filename; //$url就是你要保存到資料庫的路徑了
$fullfilename = SITE_ROOT.$url; //得到文件在磁碟上存儲的完整路徑

mymkdir($fullpath); //我自己寫的函數,如果目錄不存在則逐級創建目錄

//移動文件
@move_uploaded_file($upfile_temp,$fullfilename);

if( !file_exists($fullfilename)) { //檢測文件是否轉移成功
error("文件上傳失敗!");
exit;
}

//將文件信息插入資料庫
$msg = '文件上傳成功!';

$f_name = trim($_POST['title']);
$f_name = substr($f_name,0,60);
if( isset($_POST['parent']) && $_POST['parent'] != 0) {
$sql = 'INSERT INTO z_files (filename, url,type,parent,ext,size,upuser,uptime) VALUES ('.
sprintf("'%s','%s','%d','%d','%s','%d','%d',now())",$f_name,$url,$mediatype,intval($_POST['parent']),$ext,$filesize,$_SESSION['userid']);
} else {
$sql = 'INSERT INTO z_files (filename, url,type,ext,size,upuser,uptime) VALUES ('.
sprintf("'%s','%s','%d','%s','%d','%d',now())",$f_name,$url,$mediatype,$ext,$filesize,$_SESSION['userid']);
}
//執行sql查詢($db對象是我自己寫的一個資料庫操作類)
if(!$db->query($sql)) {
error('文件信息插入資料庫失敗!'.$db->getLastError());
}

if( isset($_GET['mod']) && $_GET['mod'] == 'd') {
echo '<script language="javascript" type="text/javascript">window.location="./?m=file&s=sfile";</script>';
} else {
message('./index.php?m=mediafile','文件信息插入資料庫成功!', 1, $title='');
}
}

閱讀全文

與圖片添加資料庫mysql相關的資料

熱點內容
maya粒子表達式教程 瀏覽:84
抖音小視頻如何掛app 瀏覽:283
cad怎麼設置替補文件 瀏覽:790
win10啟動文件是空的 瀏覽:397
jk網站有哪些 瀏覽:134
學編程和3d哪個更好 瀏覽:932
win10移動硬碟文件無法打開 瀏覽:385
文件名是亂碼還刪不掉 瀏覽:643
蘋果鍵盤怎麼打開任務管理器 瀏覽:437
手機桌面文件名字大全 瀏覽:334
tplink默認無線密碼是多少 瀏覽:33
ipaddgm文件 瀏覽:99
lua語言編程用哪個平台 瀏覽:272
政采雲如何導出pdf投標文件 瀏覽:529
php獲取postjson數據 瀏覽:551
javatimetask 瀏覽:16
編程的話要什麼證件 瀏覽:94
錢脈通微信多開 瀏覽:878
中學生學編程哪個培訓機構好 瀏覽:852
榮耀路由TV設置文件共享錯誤 瀏覽:525

友情鏈接