您的位置:

阿里云php上传图片,php实现图片上传

本文目录一览:

PHP 如何上传图片和文字?

直接form表单加上上传的属性,在php那里判断下 $_FILE里面的临时文件是否存在,存在就遍历,然后定义一个数组。把上传到服务器端的临时文件挪到指定位置,然后把路径存到数组里面,最终存到数据库。就实现上传了

php为什么上传图片会失败

一般来说,可以通过报错来解决或者说找到问题,但你只有一个标题,所以不知道什么错,无法给出具体解决方法,但一般来说会从以下几个点入手:

1、检查文件大小,是否有做这个限制,apache默认应该是2M的

2、检查图片保存路径,是否有写入权限

3、查看代码,是否有写错上传代码

先定位到错误的位置,就好解决问题了

怎样用php实现上传图片到数据库

php实现上传图片保存到数据库的方法。具体分析如下:

php 上传图片,一般都使用move_uploaded_file方法保存在服务器上。但如果一个网站有多台服务器,就需要把图片发布到所有的服务器上才能正常使用(使用图片服务器的除外)

如果把图片数据保存到数据库中,多台服务器间可以实现文件共享,节省空间。

首先图片文件是二进制数据,所以需要把二进制数据保存在mysql数据库。

mysql数据库提供了BLOB类型用于存储大量数据,BLOB是一个二进制对象,能容纳不同大小的数据。

BLOB类型有以下四种,除存储的最大信息量不同外,其他都是一样的。可根据需要使用不同的类型。

TinyBlob       最大 255B

Blob              最大 65K

MediumBlob  最大 16M

LongBlob      最大 4G

数据表photo,用于保存图片数据,结构如下:

CREATE TABLE `photo` (  

  `id` int(10) unsigned NOT NULL auto_increment,  

  `type` varchar(100) NOT NULL,  

  `binarydata` mediumblob NOT NULL,  

  PRIMARY KEY  (`id`)  

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

upload_image_todb.php代码如下:

?php  

// 连接数据库  

$conn=@mysql_connect("localhost","root","")  or die(mysql_error());  

@mysql_select_db('demo',$conn) or die(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 = "insert into photo(type,binarydata) values('".$type."','".$image."')";  

    @mysql_query($sqlstr) or die(mysql_error());  

    header('location:upload_image_todb.php');  

    exit();  

// 显示图片  

}elseif($action=='show'){  

    $id = isset($_GET['id'])? intval($_GET['id']) : 0;  

    $sqlstr = "select * from photo where id=$id";  

    $query = mysql_query($sqlstr) or die(mysql_error());  

    $thread = mysql_fetch_assoc($query);  

    if($thread){  

        header('content-type:'.$thread['type']);  

        echo $thread['binarydata'];  

        exit();  

    }  

}else{  

// 显示图片列表及上传表单  

?  

!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ""  

html  

 head  

  meta http-equiv="content-type" content="text/html; charset=utf-8"  

  title upload image to db demo /title  

 /head  

  

 body  

  form name="form1" method="post" action="upload_image_todb.php" enctype="multipart/form-data"  

  p图片:input type="file" name="photo"/p  

  pinput type="hidden" name="action" value="add"input type="submit" name="b1" value="提交"/p  

  /form  

  

?php  

    $sqlstr = "select * from photo order by id desc";  

    $query = mysql_query($sqlstr) or die(mysql_error());  

    $result = array();  

    while($thread=mysql_fetch_assoc($query)){  

        $result[] = $thread;  

    }  

    foreach($result as $val){  

        echo 'pimg 

src="upload_image_todb.php?action=showid='.$val['id'].'t='.time().'"

 width="150"/p';  

    }  

?  

/body  

/html  

?php  

}  

?

程序运行截图和数据库截图:

求助阿里云服务器上传图片代码php版本

if($_GET['act']=="do"){

$pathinfo = pathinfo(__FILE__);

define('DOCROOT', $pathinfo['dirname'] . DIRECTORY_SEPARATOR);

$tmp_name = DOCROOT. 'tmp/'.$_FILES['file']['tmp_name'];

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

echo "上传成功";

}else{

echo "失败了";

}

}

?

form action="shang.php?act=do" enctype="multipart/form-data" method="post" name="file"

上传文件:

input name="file" type="file"/

input type="submit" value="上传"/br/

/form

阿里云oss php上传图片问题 上传前把图片重命名之后再上传到oss 怎么写代码呢

他这里有一个上传示例的

?php 

 

/** 

* 加载sdk包以及错误代码包 

*/ 

require_once 'oss_php_sdk/sdk.class.php'; 

$oss_sdk_service = new ALIOSS(); 

$bucket = '你的bucket名字'; 

 

if ((($_FILES["file"]["type"] == "image/gif") 

|| ($_FILES["file"]["type"] == "image/jpeg") 

|| ($_FILES["file"]["type"] == "image/pjpeg")) 

 ($_FILES["file"]["size"]  2000000)) 

    if ($_FILES["file"]["error"]  0) 

    { 

        echo "Return Code: " . $_FILES["file"]["error"] . "br /"; 

    } 

    else 

    { 

        echo "Upload: " . $_FILES["file"]["name"] . "br /"; 

        echo "Type: " . $_FILES["file"]["type"] . "br /"; 

        echo "Size: " . ($_FILES["file"]["size"] / 1024) . " KBbr /"; 

        echo "Temp file: " . $_FILES["file"]["tmp_name"] . "br /"; 

 

        $content = ''; 

        $length = 0; 

        $fp = fopen($_FILES["file"]["tmp_name"],'r'); 

        if($fp) 

        { 

            $f = fstat($fp); 

            $length = $f['size']; 

            while(!feof($fp)) 

            { 

                $content .= fgets($fp,8192); 

            } 

        } 

        $upload_file_options = array('content' = $content, 'length' = $length); 

        $upload_file_by_content = $oss_sdk_service-upload_file_by_content($bucket, $_FILES["file"]["name"], $upload_file_options); //$_FILES["file"]["name"]这个就是文件名,你可以自己定义的。

        $img_url = "" . $bucket . "/" . $_FILES["file"]["name"]; 

        echo "Upload successfully! The OSS URL of this file: " . $img_url . "br /"; 

        echo "If the bucket is public-read, the uploaded image can be shown as:" . "br /"; 

    echo "img src=$img_url /"; 

    } 

else 

    echo "Invalid file"; 

}

关于文件名我已经给你注释在代码中了,你试试看

php中上传图片文件时提示不存在的图像文件

Gd.class.php第42行报错,应该是在这里使用的图片地址用错了,使用$_Files里的tmp_name才是真实路径,注意$_Files可能是个多维数组,另外如果确定路径没错,去这个路径看看图片是否正确上传上来,如果图片真的不存在,就是上传有问题

php上传原理,是把文件先保存在一个临时目录,比如C:/tmp(这个路径可以在php的配置文件里配),然后需要你手动把临时文件转移到你的目标文件,比如D:/uploads,如果不做这一步,页面关闭后,临时文件会被删除。