PHP上传图片至阿里云
<?php
header("Content-type: text/html; charset=utf-8");
header('Access-Control-Allow-Origin:*');
require_once '/aliyun-oss-php-sdk-master/autoload.php';
use OSS\OssClient;
use OSS\Core\OssException;
$accessKeyId = "*********"; ;
$accessKeySecret = "************";
$endpoint = "oss-cn-shanghai.aliyuncs.com";
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
$ossClient->setTimeout();
$ossClient->setConnectTimeout();
function create_guid() {
$charid = strtoupper(md5(uniqid(mt_rand(), true)));
$uuid =
substr($charid, , )
.substr($charid, , )
.substr($charid,, )
.substr($charid,, );
return $uuid;
}
function WriteLog($info)
{
$file = 'F:\wampserver\setup\wamp\www\log.txt';
file_put_contents($file, $info,FILE_APPEND);
}
function test_input($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
function Outputsmallimage($tmp_path, $dst_w, $file_path, $file_name)
{
$arr=getimagesize($tmp_path);
$src_w=$arr[];
$src_h=$arr[];
$type=$arr[];
switch($type){
case :$src_im=imagecreatefromgif($tmp_path);break;
case :$src_im=imagecreatefromjpeg($tmp_path);break;
case :$src_im=imagecreatefrompng($tmp_path);break;
default:UtlsSvc::showMsg('不支持该图片类型','/coinproduct/index/');
}
if ($dst_w == ) {
$dst_h = ;
} elseif ($dst_w == ) {
$dst_h = ;
} elseif ($dst_w == ) {
$dst_h = ;
}
$dst_im=imagecreatetruecolor($dst_w,$dst_h);
imagecopyresized($dst_im,$src_im,,,,,$dst_w,$dst_h,$src_w,$src_h);
imagejpeg($dst_im, $file_path.'/'.$file_name);
}
class Backinform
{
public $kindsmall ;
public $kindbig;
public $kind;
}
class CommentImage
{
private $servername;
private $username ;
private $password;
private $dbname ;
private $sql;
private $conn;
public function CommentImage()
{
$this->servername="cnpsimout.mysql.rds.aliyuncs.com:****";
$this->username="******";
$this->password="******";
$this->dbname="******";
$this->conn = new mysqli($this->servername,$this->username,$this->password,$this->dbname);
if ($this->conn->connect_error)
{
die("Connection failed: " . $conn->connect_error);
WriteLog("Connection failed: " . $conn->connect_error);
}
}
public function Insert_image($resourceid,$mediaid,$linktype,$linkid,$resourcetype,$image,$image2)
{
$this->sql = "INSERT INTO resources (resourceid,mediaid,linktype,linkid,resourcetype,smallurl,bigurl)
VALUES ('$resourceid','$mediaid','$linktype','$linkid','$resourcetype','$image','$image2')";
if ($this->conn->query($this->sql) === TRUE)
{
WriteLog(mysqli_error());
return "OK"; }
else
{
WriteLog(mysqli_error());
return "NO";
}
$str=mysql_error($this->conn);
WriteLog($str);
}
}
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
WriteLog("\n上传开始时间:".date('y-m-d h:i:s',time())."\n");
$backinfo=new Backinform();
$backinfo->kindbig="";
$backinfo->kindsmall="";
$backinfo->kind="";
$uptypes=array('image/jpg','image/jpeg','image/png','image/pjpeg','image/gif','image/bmp','image/x-png');
$destination_folder="uploadimg/"; //上传文件路径
$file = $_FILES["upfile"];
$filename=$file["tmp_name"];
$image_size = getimagesize($filename);
$pinfo=pathinfo($file["name"]);
$ftype=$pinfo['extension'];
$imagebig=create_guid().".".$ftype;
$imagesmall=create_guid().".".$ftype;
$bucket = "w376161501";
$object="Ionic/Imagebig/".$imagebig;
try{
$ossClient->uploadFile($bucket,$object,$filename);
$backinfo->kindbig="OK";
}
catch (OssException $e) {
WriteLog("上传原图失败信息".$e->getMessage());
$backinfo->kindbig="NO";
}
Outputsmallimage($filename, ,$destination_folder, $imagesmall);
$object2="Ionic/Imagesmall/".$imagesmall;
$path=$destination_folder.$imagesmall;
try{
$ossClient->uploadFile($bucket,$object2,$path);
$backinfo->kindsmall="OK";
}
catch (OssException $e) {
WriteLog("上传压缩图失败信息".$e->getMessage());
$backinfo->kindsmall="NO";
}
unlink($path);
if($backinfo->kindsmall=="OK"&&$backinfo->kindbig=="OK")
{
$insertimage=new CommentImage();
$resourceid=create_guid();
$mediaid="DB5483ADCADC3ADC1E5CD2";
$linkid=test_input($_POST["id"]);
$linktype=test_input($_POST["eventtype"]);
WriteLog("连接ID:".$linkid."--连接类型:".$linktype."\n");
$resourcetype="图片";
if($insertimage->Insert_image($resourceid,$mediaid,$linktype,$linkid,$resourcetype,$object2,$object)=="OK")
{
$backinfo->kind="OK";
$json = json_encode($backinfo);
echo "$json";
WriteLog("资源ID:".$resourceid."--成功上传截止:".date('y-m-d h:i:s',time())."\n");
}
else
{
WriteLog("\n数据添加失败");
}
}
}
?>
demo下载地址http://download.csdn.net/detail/w76161501/9663266
PHP上传图片至阿里云的更多相关文章
- 上传图片到阿里云OSS和获取上传图片的外网url的步骤
啥都不说 直接上代码 1.html: <form action="/bcis/api/headImgUpload.json" method="post" ...
- swift3.0 从相册选取或者拍照上传图片至阿里云OSS
导入相应的库 import Photos import AliyunOSSiOS 选取照片需要继承 UIImagePickerControllerDelegate,UINavigationContro ...
- multipartUpload上传图片到阿里云
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- vue 上传图片到阿里云(前端直传:不推荐)
为何要这样做:减轻后端数据库压力(个人觉得于前端没啥用,谁返回来都行) 代码部分: <template> <div class="upLoad"> < ...
- Java中使用RestFul接口上传图片到阿里云OSS服务器
1.接口方法 import java.io.IOException; import javax.servlet.http.HttpServletRequest; import org.springfr ...
- 压缩并上传图片到阿里云(jfinal)
/** * 获取上传文件 * * @param r * @Return: com.oreilly.servlet.multipart.FilePart */public static FilePart ...
- vue中上传图片至阿里云oss
1.开通阿里云的oss服务这些这里就不多做介绍了 2.登入阿里云的后台管理系统创建一个Bucket 3.在后台管理系统中进入访问控制 4.点击用户管理->新建用户->填写相关信息,就生成了 ...
- 上传图片到阿里云oss
阿里云地址 登录阿里云管理控制台,创建对象存储oss private static final String endpoint = "http://oss-cn-shanghai.aliyu ...
- TP框架上传图片至阿里云oss
首先安装阿里云oss扩展: composer require aliyuncs/oss-sdk-php 如果这个安装不上可以直接下载SDK的包: 链接:https://pan.baidu.com/s/ ...
随机推荐
- ScriptManager需要用到的JS
<script type="text/javascript"> Sys.Application.add_load(function() { var form = Sys ...
- asp.net后台的一些操作
1.在后台绑定下拉框再返回到前台 protected StringBuilder sq = new StringBuilder();//为了在前台绑定 protected void Page_Load ...
- Android之日期及时间选择对话框
转:http://www.cnblogs.com/linjiqin/archive/2011/03/10/1980215.html main.xml布局文件 <?xml version=&quo ...
- Android 底部Dialog显示
public void showComplainDialog() { ComplainDialog complain_dialog = new ComplainDialog(OrderDetialAc ...
- 前端-mate讲解
<meta> 元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词. <meta> 标签位于文档的头部,不包含任何内容. & ...
- [汇编语言]-第五章[bx]和loop指令
1- [bx]和内存单元的描述 [0]表示内存单元, 他的偏移地址为0 mov ax,[0] 将一个内存单元的内容送入到ax.这个内存单元的长度为2字节(字单元),存放一个字,偏移地址为0,段地址在d ...
- 深入理解Autofac生命周期
为什么Autofac表现的这样? 这里似乎有几个陷阱,虽然这里只有一个------并且这个值得重申: Autofac将会跟踪每一个他所创建的可销毁的组件实例,无论这个实例是怎样被获取的. 当然,最终. ...
- 使用Java管理Azure(1):基础配置
Azure针对Java开发人员提供了非常丰富的开发库,开发工具,和相关插件,让你通过Java对Azure进行服务管理和开发,本文第一步先介绍如何快速的配置Java开发工具,主要针对目前比较流行的Ecl ...
- Azure上Linux虚拟机Mac地址的持久化
有些用户在使用Azure Linux 虚拟机安装软件时,有些软件的license会和当前系统的mac地址绑定,那么在Azure VM重启,reszie(改变尺寸大小),停止然后再启动的时候,虚拟机的M ...
- Oracle EBS-SQL (BOM-16):检查多层BOM.sql
select rownum seq_num, lpad(to_char(level), decode(level, 1, 1, level + 1), '.') bom_level, bbm.ASSE ...