㈠ 用php上传图片怎么做
上传图片原理:首先判断文件类型是否为图片格式,若是则上传文件,然后重命名文件(一般都是避免上传文件重名,现在基本上都是以为时间来命名),接着把文件上传到指定目录,成功上传后输出上传图片的预览。
1.首先我们开始判断文件类型是否为图片类型用到的函数
{
strrchr:查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符。
substr: 取部份字符串。
$HTTP_POST_FILES['file']['name']:获取当前上传的文件全称。
}
图片类型就是“.”后面的字符(比如:一个文件名称为XXX.JPG 那么它的类型就是“.”后面的JPG)。 我们可以用PHP中的函数来截取上传者文件名字的。我们来写个获取文件类型的函数
<?
function type()
{
return substr(strrchr($HTTP_POST_FILES['file']['name'],'.'),1);
}
?>
2.若是则上传文件,然后重命名文件用到的函数
{ strtolower:把字符串的字母全部转换为小写字母. in_array: 函数在数组中搜索给定的值。 implode:函数把数组元素组合为一个字符串 random:随机生成的数 $_FILES['userfile']['name']:上传文件名称 $uploaddir:自己定义的变量。比如在同一个文件夹里面,你想把上传的文件放到这个文件夹的FILE文件夹下,你可以这样定义$uploaddir="./file/";注意写法 } 这边会出现很多问题,第一先写一个能上传类型的数组。第二判断文件合法性。第三给文件重名。*(这边判断文件大小就不写了)先定义允许上传文件的类型数组:$type=array("jpg","gif","bmp","jpeg","png");第二用一个IF。。else。。写一个判断文件合法性的控制流语句。if(!in_arry(strtolower(type()),$type))//如果不存在能上传的类型 { $text=implode('.',$type); echo "您只能上传以下类型文件: ",$text,"<br>"; } 下面就是给他们重新命名了,else { $filename=explode(".",$_FILES['userfile']['name']);//把上传的文件名以“.”好为准做一个数组。 $time=date("m-d-H-i-s");//去当前上传的时间 $filename[0]=$time;//取文件名t替换 name=implode(".",$filename); //上传后的文件名 $uploadfile=$uploaddir.$name;//上传后的文件名地址 } 3.最后把文件上传到指定目录,成功上传后输出上传图片的预览用到的函数{ move_uploaded_file:执行上传文件 } if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile)) { echo "<center>您的文件已经上传完毕 上传图片预览: </center><br><center><img src='$uploadfile'></center>"; echo"<br><center><a href='javascrīpt:history.go(-1)'>继续上传</a></center>"; } else { echo"传输失败!"; }
㈡ php上传图片文件常用的几个方法
你好,要先建立一个html代码
<formaction="upload_file.php"method="post"
enctype="multipart/form-data">
<labelfor="file">Filename:</label>
<inputtype="file"name="file"id="file"/>
<br/>
<inputtype="submit"name="submit"value="Submit"/>
</form>
然后创建upload_file文件用$_FILE判断文件,下面是判断文件的具体信息
$_FILES["file"]["name"] - 被上传文件的名称
$_FILES["file"]["type"] - 被上传文件的类型
$_FILES["file"]["size"] - 被上传文件的大小,以字节计
$_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
$_FILES["file"]["error"] - 由文件上传导致的错误代
希望对你有帮助!
㈢ php怎么上传图片
<?php
header('Content-type:text/html;charset=UTF-8');
if(!empty($_FILES)){
$fileInfo=$_FILES['myfile'];
print_r($_FILES);
if($fileInfo['error']>0){
switch($fileInfo['error']){
case 1:
$msg_error='上传文件超过了php配置文件中UPLOAD_MAX_FILESIZE选项的值';
break;
case 2:
$msg_error='超过了表单MAX_FILE_SIZE限制的大小';
break;
case 3:
$msg_error='文件部分上传';
break;
case 4:
$msg_error='没有文件上传';
break;
case 6:
$msg_error='没有找到临时目录';
break;
case 7:
case 8:
$msg_error='系统错误';
break;
}
exit($msg_error);
}
$filename=$fileInfo['name'];
$ext=strtolower(substr($filename,strrpos($filename,'.')+1));
$allowExt=array('txt','html','png','gif','jpeg');
if(!in_array($ext,$allowExt)){
exit('上传文件类型错误');
}
$maxSize=2097152;
if($fileInfo['size']>$maxSize){
exit('上传文件过大');
}
if(!is_uploaded_file($fileInfo['tmp_name'])){
exit('文件不是通过HTTP POST方式提交上来的');
}
//确保文件名字唯一,防止同名文件被覆盖
$uniqName=md5(uniqid(microtime(true),true)).'.'.$ext;
$path="uploads";
if(!file_exists($path)){
mkdir($path,0777,true);
chmod($path,0777);
}
$destination=$path.'/'.$uniqName;
if(!@move_uploaded_file($fileInfo['tmp_name'],$destination)){
exit('文件上传失败');
}
echo '上传成功';
}
㈣ php中上传图片的问题
你的程序没有存储数据库呀,只是把文件拷贝到了指定的文件夹下
㈤ 怎样用php实现上传图片到数据库
php实现上传图片保存到数据库的方法。具体分析如下:
php 上传图片,一般都使用move_uploaded_file方法保存在服务器上。但如果一个网站有多台服务器,就需要把图片发布到所有的服务器上才能正常使用(使用图片服务器的除外)
如果把图片数据保存到数据库中,多台服务器间可以实现文件共享,节省空间。
首先图片文件是二进制数据,所以需要把二进制数据保存在mysql数据库。
mysql数据库提供了BLOB类型用于存储大量数据,BLOB是一个二进制对象,能容纳不同大小的数据。
BLOB类型有以下四种,除存储的最大信息量不同外,其他都是一样的。可根据需要使用不同的类型。
TinyBlob 最大 255B
Blob 最大 65K
MediumBlob 最大 16M
LongBlob 最大 4G
数据表photo,用于保存图片数据,结构如下:
CREATETABLE`photo`(
`id`int(10)unsignedNOTNULLauto_increment,
`type`varchar(100)NOTNULL,
`binarydata`mediumblobNOTNULL,
PRIMARYKEY(`id`)
)ENGINE=MyISAMDEFAULTCHARSET=latin1AUTO_INCREMENT=1;
upload_image_todb.php代码如下:
<?php
//连接数据库
$conn=@mysql_connect("localhost","root","")ordie(mysql_error());
@mysql_select_db('demo',$conn)ordie(mysql_error());//判断action
$action=isset($_REQUEST['action'])?$_REQUEST['action']:'';
//上传图片
if($action=='add'){
$image=mysql_escape_string(file_get_contents($_FILES['photo']['tmp_name']));
$type=$_FILES['photo']['type'];
$sqlstr="insertintophoto(type,binarydata)values('".$type."','".$image."')";
@mysql_query($sqlstr)ordie(mysql_error());
header('location:upload_image_todb.php');
exit();
//显示图片
}elseif($action=='show'){
$id=isset($_GET['id'])?intval($_GET['id']):0;
$sqlstr="select*fromphotowhereid=$id";
$query=mysql_query($sqlstr)ordie(mysql_error());
$thread=mysql_fetch_assoc($query);
if($thread){
header('content-type:'.$thread['type']);
echo$thread['binarydata'];
exit();
}
}else{
//显示图片列表及上传表单
?>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="content-type"content="text/html;charset=utf-8">
<title>uploadimagetodbdemo</title>
</head>
<body>
<formname="form1"method="post"action="upload_image_todb.php"enctype="multipart/form-data">
<p>图片:<inputtype="file"name="photo"></p>
<p><inputtype="hidden"name="action"value="add"><inputtype="submit"name="b1"value="提交"></p>
</form>
<?php
$sqlstr="select*fromphotoorderbyiddesc";
$query=mysql_query($sqlstr)ordie(mysql_error());
$result=array();
while($thread=mysql_fetch_assoc($query)){
$result[]=$thread;
}
foreach($resultas$val){
echo'<p><img
src="upload_image_todb.php?action=show&id='.$val['id'].'&t='.time().'"
width="150"></p>';
}
?>
</body>
</html>
<?php
}
?>
程序运行截图和数据库截图:
㈥ php 实现图片上传如何实现
$_FILES数组处理删除即可
㈦ PHP 如何上传图片和文字
直接form表单加上上传的属性,在php那里判断下 $_FILE里面的临时文件是否存在,存在就遍历,然后定义一个数组。把上传到服务器端的临时文件挪到指定位置,然后把路径存到数组里面,最终存到数据库。就实现上传了
㈧ php中如何处理上传图片
是这样的,现在浏览器安全性加强了,不能获取到本地端的路径
所以只能取得上传到的文件名,你得手动定义一个上传路径,比如你设置一个 config.php 文件,在里面定义一下你的上传路径,然后保存到数据库里面的时候保存这个路径
$filename = get_filename();
move_uploaded_file($_FILES['file']['tmp_name'], $filename);
mysql_query('INSERT INTO ...'); // 此处代码略
㈨ php怎样上传图片
一下代码可以实现简单的(单个的)文件上传,你看看吧:有更好的方法可以讨论
<?php
////////上传文件////////////
if(isset($_POST["sub"])){
//$upfile="../upload_file/".$_FILES["file"]["name"];
$name=time();//定义变量,保存图片名,以防图片的名字相同
echo$name;
$name.=strrchr($_FILES["file"]["name"],".");//上传文件的名称
echo$name;
$num=rand(1,10);
$type=$_FILES["file"]["type"];
$size=$_FILES["file"]["size"];
$tmp_name=$_FILES["file"]["tmp_name"];
if($_FILES["fiel"]["error"]>0){
echo"上传文件有误:".$_FILES["file"]["error"]."<br/>";
}else{
echo"上传文件名为:".$name."<br>";
echo"上传文件类型为:".$type."<br>";
echo"上传文件大小为:".($size/1024)."<br>";
echo"上传到:".$tmp_name."<br>";
if(file_exists("../upload_file/$name")){
echo"已经存在";
}else{
if(move_uploaded_file($tmp_name,"../upload_file/$name")){
echo$name."上传成功";
}else{
echo$name."上传失败";
}
}
}
}
?>
<formmethod="post"action="php_upload.php"enctype="multipart/form-data">
<inputtype="file"name="file">
<inputtype="submit"name="sub"value="upload">
<inputtype="reset"name="res"value="reset"/>
</form>
㈩ php怎么通过api接口上传图片
require_once "../common_mysql.php";
require_once MESSAGE_PATH . 'zh/zh_calendar_message.php';
require_once "function_common/user_function.php";
require_once "function_common/public_function.php";
global $DB;
$sql_time = microtime ( true );
//$uid = $self_userid;
//保存图片
$json_result ['status'] = 0;
$path = 'upfile';
$json_result ['status'] = 0;
$json_result ['successmsg'] = '上传失败';
if (isset ( $_FILES ['imageZip'] )) {
$upfile = 'upfile/' . $_FILES ['imageZip'] ['name'];
if (! @file_exists ( $path )) {
@mkdir ( $path );
}
$result = @move_uploaded_file ( $_FILES ['imageZip'] ['tmp_name'], $upfile );
if (! $result) {
$json_result ['status'] = 0;
$json_result ['successmsg'] = '上传失败';
$json_result ['datas'] = array ('savePath' => $upfile );
exit ( json_encode ( $json_result ) );
}
}
$json_result ['status'] = 1;
$json_result ['datas'] = array ('savePath' => $upfile );