php保存数据流图片,php上传图片存储

用php如何把图像数据流保存

imagegif(resource $image [, string $filename ]) 从 image 图像以 filename 为文件名创建一个 GIF 图像。image 参数是 imagecreate() 或 imagecreatefrom* 函数的返回值。

成都创新互联公司主要从事成都做网站、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务铁西,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575

imagejpeg(resource $image [, string $filename ]) 从 image 图像以 filename 为文件名创建一个 JPEG 图像。

imagepng(resource $image [, string $filename ]) 将 GD 图像流(image)以 PNG 格式输出到标准输出(通常为浏览器),或者如果用 filename 给出了文件名则将其输出到该文件。

filename 文件保存的路径,如果未设置或为 NULL,将会直接输出原始图象流。

这几个函数你参考一下,希望对你有帮助。

php 数据库图片存储问题?

存储的是相对路径,可以到网站服务器上查看,应该有upload文件夹,里面就是存储的图片,这样写的好处是节省了数据库存储空间,转移的时候可以直接将整个服务器的图片打包转移。

访问的时候,前面可以拼接域名和指定的路径,这些后台可以轻松获取到,然后拼接上服务器的路径,我们就可以直接在网页上访问到图片了。

这是很常见的图片数据库保存方式,和直接把图片的二进制存入数据库,这样的方式便于检索,占用空间小。当然,目前主流都采用oss来单独存储文件了,就是有专门的文件服务器,这个时候,一般存储的是完整的图片路径。

php怎么输出图片和存储图片?

这里我要跟你说明一下,如果你在一个公司的话,公司的数据库 是绝对不会让你直接在数据库里面存储图片的,只会存储一个服务器的路径而已,所以你要先把图片路径输出出来 数据库图片类型 varchar

PHP怎么把图片数据保存为jpg图片到服务器目录

第一步:通过$_FILES获取文件信息。

第二步:指定新文件名称以及路径,并赋值给一个变量。

第三步:通过move_uploaded_file上传文件。

第四步:上传成功后,将数值存入数据库服务器目录即可。

代码如下

1.conn.php

$host="localhost"; //数据库服务器名称 

$user="root"; //用户名 

$pwd="1721"; //密码 

$conn=mysql_connect($host,$user,$pwd); 

mysql_query("SET 

character_set_connection=gb2312, 

character_set_results=gb2312, 

character_set_client=binary",$conn); 

if ($conn==FALSE) 

echo "center服务器连接失败!br请刷新后重试。/center"; 

return true; 

$databasename="database";//数据库名称 

do 

$con=mysql_select_db($databasename,$conn); 

}while(!$con); 

if ($con==FALSE) 

echo "center打开数据库失败!br请刷新后重试。/center"; 

return true; 

?

2.upload.php

?php 

if ($_GET['action'] == "save"){ 

include_once('conn.php'); 

include_once('uploadclass.php'); 

$title=$_POST['title']; 

$pic=$uploadfile; 

if($title == "") 

echo"Scriptwindow.alert('对不起!你输入的信息不完整!');history.back()/Script"; 

$sql="insert into upload(title,pic) values('$title','$pic')"; 

$result=mysql_query($sql,$conn); 

//echo"Scriptwindow.alert('信息添加成功');location.href='upload.php'/Script"; 

html 

head 

title文件上传实例/title 

/head 

body 

form method="post" action="?action=save" enctype="multipart/form-data" 

table border=0 cellspacing=0 cellpadding=0 align=center width="100%" 

tr 

td width=55 height=20 align="center" /TD 

td height="16" 

table width="48%" height="93" border="0" cellpadding="0" cellspacing="0" 

tr 

td标题:/td 

tdinput name="title" type="text" id="title"/td 

/tr 

tr 

td文件: /td 

tdlabel 

input name="file" type="file" value="浏览"  

input type="hidden" name="MAX_FILE_SIZE" value="2000000" 

/label/td 

/tr 

tr 

td /td 

tdinput type="submit" value="上 传" name="upload"/td 

/tr 

/table/td 

/tr 

/table 

/form 

/body 

/html

3.uploadclass.php

?php 

$uploaddir = "upfiles/";//设置文件保存目录 注意包含/ 

$type=array("jpg","gif","bmp","jpeg","png");//设置允许上传文件的类型 

$patch="upload/";//程序所在路径 

//获取文件后缀名函数 

function fileext($filename) 

return substr(strrchr($filename, '.'), 1); 

//生成随机文件名函数 

function random($length) 

$hash = 'CR-'; 

$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'; 

$max = strlen($chars) - 1; 

mt_srand((double)microtime() * 1000000); 

for($i = 0; $i  $length; $i++) 

$hash .= $chars[mt_rand(0, $max)]; 

return $hash; 

$a=strtolower(fileext($_FILES['file']['name'])); 

//判断文件类型 

if(!in_array(strtolower(fileext($_FILES['file']['name'])),$type)) 

$text=implode(",",$type); 

echo "您只能上传以下类型文件: ",$text,"br"; 

//生成目标文件的文件名 

else{ 

$filename=explode(".",$_FILES['file']['name']); 

do 

$filename[0]=random(10); //设置随机数长度 

$name=implode(".",$filename); 

//$name1=$name.".Mcncc"; 

$uploadfile=$uploaddir.$name; 

while(file_exists($uploadfile)); 

if (move_uploaded_file($_FILES['file']['tmp_name'],$uploadfile)) 

if(is_uploaded_file($_FILES['file']['tmp_name'])) 

echo "上传失败!"; 

else 

{//输出图片预览 

echo "center您的文件已经上传完毕 上传图片预览: /centerbrcenterimg src='$uploadfile'/center"; 

echo "brcentera href='upload.htm'继续上传/a/center"; 

?

批量添加图片后怎么存入数据库?

通常对用户上传的图片需要保存到数据库中。解决方法一般有两种:一种是将图片保存的路径存储到数据库;另一种是将图片以二进制数据流的形式直接写入数据库字段中。以下为具体方法:

一、保存图片的上传路径到数据库:

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;

采用俩种方式可以根据实际需求灵活选择。

php如何将webservice返回的二进制流保存到本地图片

前几天 刚弄的 app提交图片的接口,二进制那种比较麻烦,

让app那端也用 浏览器那种方式提交过来,php正常接收就ok

然后返回地址、图片属性,(这边不用保存到本地吧,app那端应该是保存到本地),多个的话循环一下也行,也不慢

最后app把多个图片以及表情、内容什么的提交过来 ,然后保存到数据库 应该是 ok的 ,如果 单独保存图片 正则匹配一下!!!


网站标题:php保存数据流图片,php上传图片存储
本文地址:http://scyanting.com/article/hsdhhi.html