这里有谁用phpmyadmin的吗 最近在做一个类似ebay的网页,里面有个upload page能上传物品名称,价格,图片等等到phpmyadmin,其他几个都没有问题,唯有图片不知道该怎么编译code,求人能帮个忙呀 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 上传图片大概思路是要指定一个文件夹放图片,数据库只是放一个名字而已。不可能把图片直接放数据库。调用图片的时候调用那个文件夹的路径+数据库中的名字。类似于<img src="img/数据库中的名字" />,img这个是你自己定的路径,命名的时候一般都是以时间命名。这样不会重复。还有一步是你在上传的时候可能要取后缀判断之类的,比如只能上传后缀为jpg/png/gif的图。然后移动到那个文件夹中。具体怎么实现你可以搜一下代码,很多的。大概思路就是这样的。创建路径--判断图片--命名图片--把图片移动到你所创建的路径文件夹中--把命名存到数据库中 楼上说的很详细了,数据库之保存图片名称(更牛逼点就是保存图片存放路径+名称,如1.jpg或者img/1.jpg),而这些图片应该是放到专门的文件夹底下(如img文件夹) 图片直接保存路径名吧,比如在www/image文件夹里。保存图片URL: http://www.yoursite.com/image/图片名。进数据库 尝试了几个代码结果都失败了,不知道有人能写个code给我指导下吗 我还是把我的code贴一下大家来看看吧conn.php<?php$host="XXXXX"; //数据库服务器名称$user="XXXX"; //用户名$pwd="XXXX"; //密码$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="XXXX";//数据库名称do{ $con=mysql_select_db($databasename,$conn);}while(!$con);if ($con==FALSE) { echo "<center>打开数据库失败!<br>请刷新后重试。</center>"; return true; } ?></body></html>upload.php<?phpif ($_GET['action'] == "save"){include_once('conn.php');include_once('uploadclass.php');$title=$_POST['title'];$pic=$uploadfile;if($title == "")echo"<Script>window.alert('对不起!你输入的信息不完整!');history.back()</Script>";$sql="insert into upload(title,pic) values('$title','$pic')";$result=mysql_query($sql,$conn);//echo"<Script>window.alert('信息添加成功');location.href='upload.php'</Script>";}?><html><head><title>文件上传实例</title></head><body><form method="post" action="" 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> <td><input name="title" type="text" id="title"></td> </tr> <tr> <td>文件: </td> <td><label> <input name="file" type="file" value="浏览" > <input type="hidden" name="MAX_FILE_SIZE" value="2000000"> </label></td> </tr> <tr> <td> </td> <td><input type="submit" value="上 传" name="upload"></td> </tr></table></td></tr></table></form> </body></html>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>您的文件已经上传完毕 上传图片预览: </center><br><center><img src='$uploadfile'></center>";echo "<br><center><a href='upload.htm'>继续上传</a></center>";}}}?> 把图片上传到数据库并显示blob类型<?php/********************************************************* 文件名:upload_file.php** Copyright @ 2009** 创建人:tabor** 日期:2009年7月24日 8:00** 修改人:** 日期:** 描述:文件上传操作以及对图片文件的处理** 版本:********************************************************/ class upload_file { //保存的文件名 public $file_name; //系统中上传文件的临时存放路径 public $file_tmp_name; //文件大小 public $file_size; //完整的文件类型 public $full_file_type; //文件类型 public $file_type; //文件是否覆盖 public $override = 1; //文件的保存路径 public $file_save_path = ''; //上传文件大小的最大值 单位是字节 2M public public $file_max_size = 210000000; //public public $file_max_size = 102400; //构造函数 function __construct($file_name = '', $file_tmp_name = '', $full_file_type = '', $file_size = '', $file_save_path = '') { $this->file_name = $file_name; $this->file_tmp_name = $file_tmp_name; $this->full_file_type = $full_file_type; $this->file_size = $file_size; $this->file_save_path = $file_save_path; } //取得文件的后缀名,即文件类型 function get_file_type() { $type_array = explode('.', $this->file_name); return $type_array[count($type_array)-1]; } //判断文件的大小 function check_size() { if($this->file_size > $this->file_max_size) { return false; } return true; } //取得文件的大小 function get_size() { return intval($this->file_size/1024); } //上传图片 格式 jpg,png,gif,pjpeg function check_upload_pic() { $type = $this->get_file_type(); $type_array = array('jpg', 'png', 'gif', 'bmp'); foreach($type_array as $value) { if($value = $type) { return true; } return false; } } //上传文件 格式 zip rar function check_upload_file() { $type = $this->get_file_type(); $type_array = array('jpg','gif','bmp','png'); foreach($type_array as $value) { if($value == $type) { return true; } return false; } } //判断文件是否存在 function check_exist() { $file = $this->file_save_path.$this->file_name; return file_exists($file); } //上传文件 function move_upfile() { if(!$this->check_upload_pic()) { echo "ok1"; return false; } else { if(!$this->check_size()) { echo "ok2"; return false; } else {// if($this->check_exist()) {// echo "该文件已存在";// return false;// }// else { $path = $this->file_save_path.$this->file_name; if(move_uploaded_file($this->file_tmp_name, $path)) { return true; } else { return false; }// } } } } //将上传的图片打水印 /** * $water_pic_name 将要被打水印的目标图片 * $water_word 水印文字 * $path 将来生成水印图片的存放路径 */ function create_water_pic($water_word) { $type = $this->get_file_type(); $filename = $this->file_save_path.$this->file_name; switch($type) { case 'jpg': header("content-type:image/jpeg"); //定义输出图像的类型 $im = imagecreatefromjpeg($filename); //载入图片 break; case 'png': header("content-type:image/png"); $im = imagecreatefrompng($filename); break; case 'gif': header("content-type:image/gif"); $im = imagecreatefromgif($filename); break; case 'bmp': header("content-type:image/xbm"); //上传bmp格式存在问题 $im = imagecreatefromxbm($filename); //无法打水印 break; default: { echo "文件格式不符"; } } $textcolor = imagecolorallocate($im, 56, 73,136); //设定字体的颜色 $font = "simhei.ttf"; //定义字体 $word = $water_word; //水印字符 $x = imagesx($im); //获取图片的宽度 $y = imagesy($im); //获取文件的高度 $position_x = $x-80; $position_y = $y-10; $str = iconv('gbk', 'utf-8', $word); //将中文文字显示出来的编码过程 imagettftext($im, 20, 0, $position_x, $position_y, $textcolor, $font, $str); //imagejpeg($im); //显示图片 $new = $this->file_save_path.'water'.$this->file_name; //生成新的文件名 switch($type) { case 'jpg': imagejpeg($im, $new); //生成jpg图像 break; case 'png': imagepng($im, $new); //生成png图像 break; case 'gif': imagegif($im, $new); //生成gif图像 break; case 'bmp': imagexbm($im, $new); //生成bmp图像 该格式的文件处理有问题 break; default: { echo "文件格式不符"; } } imagedestroy($im); //结束图形,释放内存空间*/ } //生成缩略图 /** * $pic 图片名 包括其扩展名,但不包括路径 * $width 将来生成缩略图的宽度 * $height 将来生成缩略图的高度 * $path 生成缩略图的存放路径 */ function create_thumbnail($width, $height) { $type = $this->get_file_type(); $filename = $this->file_save_path.$this->file_name; $img = getimagesize($filename); //print_r($img); //die(); switch($img[2]) { case 1: header("content-type:image/gif"); //定义输出图像的类型 $im = imagecreatefromgif($filename); //载入图片 break; case 2: header("content-type:image/jpeg"); $im = imagecreatefromjpeg($filename); break; case 3: header("content-type:image/png"); $im = imagecreatefrompng($filename); break; case 6: header("content-type:image/xbm"); //bmp格式存在问题 $im = imagecreatefromxbm($filename); //无法打水印 break; default: { echo "文件格式不符"; } } $thumb = imagecreatetruecolor($width, $height); //创建一个新的空白的面板 $color = imagecolorallocate($im, 200, 255, 100); //调色板 /*bool imagecopyresized ( resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h ) imagecopyresized() 将一幅图像中的一块正方形区域拷贝到另一个图像中。dst_image 和 src_image 分别是目标图像和源图像的标识符。 */ imagecopyresized($thumb, $im, 0, 0, 0, 0, $width, $height, $img[0], $img[1]); //imagejpeg($thumb); $thumb_path = $this->file_save_path."thumbnail/".$this->file_name; switch($img[2]) { case 1: imagejpeg($thumb, $thumb_path); break; case 2: imagegif($thumb, $thumb_path); break; case 3: imagepng($thumb, $thumb_path); break; case 6: imagexbm($thumb, $thumb_path); break; default: { echo "文件格式不符"; } } } }?> 求使用php生成动态gif缩略图 php 中防注入的函数,怎么写,或者思路是啥 网站改版,寻找PHP网站制作者!! mysql数据迁移的问题 跨域SESSION问题 php+oracle的分页怎么写?高手指教!!1 php里的str_replace函数可以同时替换3处吗? PHP如何绘制html文字 PHP 连接 SQLite 创建数据库并设置密码 sublime 的ftp连接错误问题 web编程框架 session的问题!
调用图片的时候调用那个文件夹的路径+数据库中的名字。类似于<img src="img/数据库中的名字" />,img这个是你自己定的路径,命名的时候一般都是以时间命名。这样不会重复。还有一步是你在上传的时候可能要取后缀判断之类的,比如只能上传后缀为jpg/png/gif的图。然后移动到那个文件夹中。具体怎么实现你可以搜一下代码,很多的。大概思路就是这样的。创建路径--判断图片--命名图片--把图片移动到你所创建的路径文件夹中--把命名存到数据库中
比如在www/image文件夹里。
保存图片URL: http://www.yoursite.com/image/图片名。进数据库
conn.php
<?php
$host="XXXXX"; //数据库服务器名称
$user="XXXX"; //用户名
$pwd="XXXX"; //密码
$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="XXXX";//数据库名称do
{
$con=mysql_select_db($databasename,$conn);
}while(!$con);if ($con==FALSE)
{
echo "<center>打开数据库失败!<br>请刷新后重试。</center>";
return true;
}
?></body>
</html>upload.php
<?php
if ($_GET['action'] == "save"){
include_once('conn.php');
include_once('uploadclass.php');
$title=$_POST['title'];
$pic=$uploadfile;
if($title == "")
echo"<Script>window.alert('对不起!你输入的信息不完整!');history.back()</Script>";
$sql="insert into upload(title,pic) values('$title','$pic')";
$result=mysql_query($sql,$conn);
//echo"<Script>window.alert('信息添加成功');location.href='upload.php'</Script>";
}
?>
<html>
<head>
<title>文件上传实例</title>
</head>
<body>
<form method="post" action="" 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>
<td><input name="title" type="text" id="title"></td>
</tr>
<tr>
<td>文件: </td>
<td><label>
<input name="file" type="file" value="浏览" >
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
</label></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" value="上 传" name="upload"></td>
</tr>
</table></td>
</tr>
</table>
</form> </body>
</html>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>您的文件已经上传完毕 上传图片预览: </center><br><center><img src='$uploadfile'></center>";
echo "<br><center><a href='upload.htm'>继续上传</a></center>";
}
}}
?>
blob类型
<?php
/*******************************************************
** 文件名:upload_file.php
** Copyright @ 2009
** 创建人:tabor
** 日期:2009年7月24日 8:00
** 修改人:
** 日期:
** 描述:文件上传操作以及对图片文件的处理
** 版本:
********************************************************/
class upload_file {
//保存的文件名
public $file_name;
//系统中上传文件的临时存放路径
public $file_tmp_name;
//文件大小
public $file_size;
//完整的文件类型
public $full_file_type;
//文件类型
public $file_type;
//文件是否覆盖
public $override = 1;
//文件的保存路径
public $file_save_path = '';
//上传文件大小的最大值 单位是字节 2M
public public $file_max_size = 210000000;
//public public $file_max_size = 102400; //构造函数
function __construct($file_name = '', $file_tmp_name = '', $full_file_type = '', $file_size = '', $file_save_path = '') {
$this->file_name = $file_name;
$this->file_tmp_name = $file_tmp_name;
$this->full_file_type = $full_file_type;
$this->file_size = $file_size;
$this->file_save_path = $file_save_path;
}
//取得文件的后缀名,即文件类型
function get_file_type() {
$type_array = explode('.', $this->file_name);
return $type_array[count($type_array)-1];
}
//判断文件的大小
function check_size() {
if($this->file_size > $this->file_max_size) {
return false;
}
return true;
}
//取得文件的大小
function get_size() {
return intval($this->file_size/1024);
}
//上传图片 格式 jpg,png,gif,pjpeg
function check_upload_pic() {
$type = $this->get_file_type();
$type_array = array('jpg', 'png', 'gif', 'bmp');
foreach($type_array as $value) {
if($value = $type) {
return true;
}
return false;
}
}
//上传文件 格式 zip rar
function check_upload_file() {
$type = $this->get_file_type();
$type_array = array('jpg','gif','bmp','png');
foreach($type_array as $value) {
if($value == $type) {
return true;
}
return false;
} }
//判断文件是否存在
function check_exist() {
$file = $this->file_save_path.$this->file_name;
return file_exists($file);
}
//上传文件
function move_upfile() {
if(!$this->check_upload_pic()) {
echo "ok1";
return false;
}
else {
if(!$this->check_size()) {
echo "ok2";
return false;
}
else {
// if($this->check_exist()) {
// echo "该文件已存在";
// return false;
// }
// else {
$path = $this->file_save_path.$this->file_name;
if(move_uploaded_file($this->file_tmp_name, $path)) {
return true;
}
else {
return false;
}// }
}
}
}
//将上传的图片打水印
/**
* $water_pic_name 将要被打水印的目标图片
* $water_word 水印文字
* $path 将来生成水印图片的存放路径
*/
function create_water_pic($water_word) {
$type = $this->get_file_type();
$filename = $this->file_save_path.$this->file_name;
switch($type) {
case 'jpg':
header("content-type:image/jpeg"); //定义输出图像的类型
$im = imagecreatefromjpeg($filename); //载入图片
break;
case 'png':
header("content-type:image/png");
$im = imagecreatefrompng($filename);
break;
case 'gif':
header("content-type:image/gif");
$im = imagecreatefromgif($filename);
break;
case 'bmp':
header("content-type:image/xbm"); //上传bmp格式存在问题
$im = imagecreatefromxbm($filename); //无法打水印
break;
default: {
echo "文件格式不符";
}
}
$textcolor = imagecolorallocate($im, 56, 73,136); //设定字体的颜色
$font = "simhei.ttf"; //定义字体
$word = $water_word; //水印字符
$x = imagesx($im); //获取图片的宽度
$y = imagesy($im); //获取文件的高度
$position_x = $x-80;
$position_y = $y-10;
$str = iconv('gbk', 'utf-8', $word); //将中文文字显示出来的编码过程
imagettftext($im, 20, 0, $position_x, $position_y, $textcolor, $font, $str);
//imagejpeg($im); //显示图片
$new = $this->file_save_path.'water'.$this->file_name; //生成新的文件名
switch($type) {
case 'jpg':
imagejpeg($im, $new); //生成jpg图像
break;
case 'png':
imagepng($im, $new); //生成png图像
break;
case 'gif':
imagegif($im, $new); //生成gif图像
break;
case 'bmp':
imagexbm($im, $new); //生成bmp图像 该格式的文件处理有问题
break;
default: {
echo "文件格式不符";
}
}
imagedestroy($im); //结束图形,释放内存空间*/
}
//生成缩略图
/**
* $pic 图片名 包括其扩展名,但不包括路径
* $width 将来生成缩略图的宽度
* $height 将来生成缩略图的高度
* $path 生成缩略图的存放路径
*/
function create_thumbnail($width, $height) {
$type = $this->get_file_type();
$filename = $this->file_save_path.$this->file_name;
$img = getimagesize($filename);
//print_r($img);
//die();
switch($img[2]) {
case 1:
header("content-type:image/gif"); //定义输出图像的类型
$im = imagecreatefromgif($filename); //载入图片
break;
case 2:
header("content-type:image/jpeg");
$im = imagecreatefromjpeg($filename);
break;
case 3:
header("content-type:image/png");
$im = imagecreatefrompng($filename);
break;
case 6:
header("content-type:image/xbm"); //bmp格式存在问题
$im = imagecreatefromxbm($filename); //无法打水印
break;
default: {
echo "文件格式不符";
}
}
$thumb = imagecreatetruecolor($width, $height); //创建一个新的空白的面板
$color = imagecolorallocate($im, 200, 255, 100); //调色板
/*bool imagecopyresized ( resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h )
imagecopyresized() 将一幅图像中的一块正方形区域拷贝到另一个图像中。dst_image 和 src_image 分别是目标图像和源图像的标识符。
*/
imagecopyresized($thumb, $im, 0, 0, 0, 0, $width, $height, $img[0], $img[1]);
//imagejpeg($thumb);
$thumb_path = $this->file_save_path."thumbnail/".$this->file_name;
switch($img[2]) {
case 1:
imagejpeg($thumb, $thumb_path);
break;
case 2:
imagegif($thumb, $thumb_path);
break;
case 3:
imagepng($thumb, $thumb_path);
break;
case 6:
imagexbm($thumb, $thumb_path);
break;
default: {
echo "文件格式不符";
}
}
}
}
?>