本文目錄一覽:
PHP 如何上傳圖片和文字?
直接form表單加上上傳的屬性,在php那裡判斷下 $_FILE裡面的臨時文件是否存在,存在就遍歷,然後定義一個數組。把上傳到伺服器端的臨時文件挪到指定位置,然後把路徑存到數組裡面,最終存到資料庫。就實現上傳了
php 非同步上傳圖片幾種方法總結
代碼如下
form action=”upload.php” id=”form1″ name=”form1″ enctype=”multipart/form-data” method=”post” target=”uploadIframe” !–上傳圖片頁面 — /form iframe name=”uploadIframe” id=”uploadIframe” style=”display:none”/iframe
然後後台處理完上傳圖片邏輯後返回給前台,利用ajax修改當前頁面DOM對象實現無刷新上傳圖片的友好功能。
實例
代碼如下
a.html form enctype=”multipart/form-data” action=”a.php” target=”ifram_sign” method=”POST” input name=”submit” id=”submit” value=”” type=”hidden” label上傳文件: input name=”test_file” type=”file” id=”test_file” size=”48″/label input type=”image” value=”立即上傳” id=”submit_btn” /formiframe name=”ifram_sign” src=”” frameborder=”0″ height=”0″ width=”0″ marginheight=”0″ marginwidth=”0″/iframe
php代碼:
代碼如下
?php
if ($_files[“test_file”][“error”] 0)
{
echo “Error: ” . $_files[“test_file”][“error”] . “br /”;
}
else
{
//這裡的判斷圖片屬性的方法就不寫了。自己擴展一下。
$filetype=strrchr($_files[“test_file”][“name”],”.”);
$filetype=substr($filetype,1,strlen($filetype));
$filename=”img/”.time(“YmdHis”).”.”.$filetype;
move_uploaded_file($_files[“test_file”][“tmp_name”],$filename);
echo ‘script alert(1)/script’;
$return=”parent.document.getElementByIdx_x(‘mpic”.$pageset_id.”‘).innerhtml='”.$dataimgpath.”‘”;
echo “script alert(‘上傳成功’)/script”;
echo “script{$return}/script”;
}
?
其實jquery ajax圖片非同步上傳
html:
!DOCTYPE html PUBLIC “-//W3C//dtd Xhtml 1.0 transitional//EN”
“”
html xmlns=”” lang=”en_US” xml:lang=”en_US”
head
title圖片非同步上傳/title
/head
script type=”text/javascript” src=”js/jquery.js”/script
script type=”text/javascript” src=”js/index.js”/script
link type=”text/css” rel=”stylesheet” href=”css/index.css”
body
div class=”frm”
form name=”uploadFrom” id=”uploadFrom” action=”upload.php” method=”post” target=”tarframe” enctype=”multipart/form-data”
input type=”file” id=”upload_file” name=”upfile”
/form
iframe src=”” width=”0″ height=”0″ style=”display:none;” name=”tarframe”/iframe
/div
div id=”msg”
/div
/body
/html
index.js
$(function(){
$(“#upload_file”).change(function(){
$(“#uploadFrom”).submit();
});
});
function stopSend(str){
var im=”img src=’upload/images/”+str+”‘”;
$(“#msg”).append(im);
}
upload.php
?php
$file=$_files[‘upfile’];
$name=rand(0,500000).dechex(rand(0,10000)).”.jpg”;
move_uploaded_file($file[‘tmp_name’],”upload/images/”.$name);
//調用iframe父窗口的js 函數
echo “scriptparent.stopSend(‘$name’)/script”;
?
非同步上傳圖片幾種方法
php中如何調用資料庫中的圖片並且顯示到頁面
php是採用二進位形式存儲圖片及讀取顯示的,首先通過代碼創建數據表,然後上傳圖片伺服器再通過瀏覽器顯示,具體編程代碼舉例:
1、首先需要創建數據表,具體代碼如下圖所示。
2、然後寫上傳圖片到伺服器的頁面 upimage.html用來將圖片上傳資料庫,如下圖所示代碼。
3、處理圖片上傳的php upimage.php文件,如下圖所示圖片已儲存到資料庫。
4、顯示圖片的php getimage.php文件,為了看一下效果提前把ID寫入代碼。
5、預覽網站從資料庫中提取了圖片,並顯示到頁面上。
php如何從資料庫中調用圖片
以下是大致的原理 你看看
在我們設計和製作網站的過程中,有時把圖片保存到資料庫中要比存成文件的形式更加方便。PHP和MySQL這對黃金組合可以很容易的實現上述功能。在本文中,我們將會向讀者介紹如何把圖片保存到MySQL資料庫中以及如何將資料庫中的圖片顯示出來。
設置資料庫
我們通常在資料庫中所使用的文本或整數類型的欄位和需要用來保存圖片的欄位的不同之處就在於兩者所需要保存的數據量不同。MySQL資料庫使用專門的欄位來保存大容量的數據,數據類型為BLOB。
MySQL資料庫為BLOB做出的定義如下:BLOB數據類型是一種大型的二進位對象,可以保存可變數量的數據。BLOB具有四種類型,分別是TINYBLOB,BLOB, MEDIUMBLOB 和LONGBLOB,區別在於各自所能夠保存的最大數據長度不同。
在介紹了所需要使用的數據類型之後,我們可以使用以下語句創建保存圖象的數據表。
CREATE TABLE Images ( PicNum int NOT NULL AUTO_INCREMENT PRIMARY KEY, Image BLOB );
編寫上傳腳本
關於如何實現文件的上傳,我們在這裡就不再介紹了,感興趣的讀者可以參見「網頁陶吧」內的相關文章。現在,我們主要來看一下如何接收上傳文件並將其存入到MySQL資料庫中。具體的腳本代碼如下,其中我們假定文件上傳域的名稱為Picture。
?
If($Picture != “none”) { $PSize = filesize($Picture);
$mysqlPicture = addslashes(fread(fopen($Picture, “r”), $PSize));
mysql_connect($host,$username,$password) or die(“Unable to connect to SQL server”);
@mysql_select_db($db) or die(“Unable to select database”);
mysql_query(“INSERT INTO Images (Image) VALUES ‘($mysqlPicture’)”)
or die(“Can’t Perform Query”);
}
else
{ echo”You did not upload any picture”; }
?
這樣,我們就可以成功的把圖片保存到資料庫中。如果在將圖片插入MySQL的過程中出現問題,可以檢查一下MySQL資料庫所允許的最大數據包的大小。如果設置值過小的話,我們會在資料庫的錯誤日誌中找到相應的記錄。
下面,我們簡單說明一下上述腳本程序。首先,我們通過「If($Picture != “none”)」檢查是否有文件被上傳。然後,使用addslashes()函數避免出現數據格式錯誤。最後,連接MySQL,選擇資料庫並插入圖片。
顯示圖片
在知道了如何將圖片存入資料庫之後,我們就需要考慮怎樣才能從資料庫中取出圖片並在HTML頁面中顯示出來。這個過程要稍微複雜一些,下面我們就來介紹一下實現過程。
因為PHP顯示圖片需要發送相應的標頭,所以我們就會面臨這樣一個問題,那就是一次只能顯示一副圖片,因為我們無法在發出標頭之後再發送其它的標頭。
為了有效的解決這一問題,我們編寫了兩個文件。其中,第一個文件作為HTML頁面的模板,定點陣圖片的顯示位置。第二個文件則被用來從資料庫中實際輸出文件流,作為IMG標籤的SRC屬性。
第一個文件的簡單形式可以如下:
HTML
BODY
?
mysql_connect($host,$username,$password)
or die(“Unable to connect to SQL server”);
@mysql_select_db($db) or die(“Unable to select database”);
$result=mysql_query(“SELECT * FROM Images”) or die(“Can’t Perform Query”);
While($row=mysql_fetch_object($result)) {
echo “IMG SRC=\”Second.php3? PicNum=$row-PicNum\””;
}
?
/BODY
/HTML
當HTML頁面被瀏覽時,每顯示一副圖片就會調用一次Second.php3文件。當第二個文件被調用時會傳入相應的Picture ID,我們可以藉此從資料庫中取回對應的圖片並顯示。
Second.php3文件如下:
?
$result=mysql_query(“SELECT * FROM Images WHERE PicNum=$PicNum”)
or die(“Can’t perform Query”); $row=mysql_fetch_object($result);
Header( “Content-type: image/gif”); echo $row-Image;
?
如何用php調用圖片?
PHP調用?好的,如果是HTML的話很簡單(只需要img標記插入即可),那麼我回答一下PHP的載入吧,代碼如下:
// 設置圖片路徑
$path = ‘/tupian/1.jpg’;
// 獲取圖片信息
$imgInfo = getimagesize($path);
// 獲取圖片類型
$imgType = $imgInfo[2];
// 檢測圖片類型
switch ($imgType) {
case 1: // gif
// 採用gif方式載入
$img = imagecreatefromgif($path);
// 聲明文件為圖片類型
header(‘Content-Type:image/gif;’);
// 採用gif方式輸出
imagegif($img);
break;
case 2: // jpg
// 採用jpg方式載入
$img = imagecreatefromjpeg($path);
// 聲明文件為圖片類型
header(‘Content-Type:image/jpeg;’);
// 採用jpeg方式輸出
imagejpeg($img);
break;
case 3: // png
// 採用png方式載入
$img = imagecreatefrompng($path);
// 聲明文件為圖片類型
header(‘Content-Type:image/png;’);
// 採用png方式輸出
imagepng($img);
break;
default:
exit(‘圖片格式不支持!’);
}
// 銷毀圖片資源
imagedestroy($img);
// 刪除變數
unset($img);
以上若還有什麼不明白的,歡迎追問~
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/287310.html