阿里云OSS,PHP简单上传文件并返回地址【转】

需要下载php 的sdk包,注意路径问题

up.php

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
	</head>
	<body>
		<form action="oss.php" method="post" enctype="multipart/form-data">
			<!--用户名:<input type="text" name="uname"><br><br>-->
			请选择文件:<input type="file" name="filename"><br><br>
			<input type="submit" value="点击上传">
		</form>
	</body>
</html>

oss.php

<?php
require_once ‘./aliyun-oss-php-sdk-master/autoload.php‘;
header("content-type:text/html;charset=utf-8");         //设置编码
if (is_file(__DIR__ . ‘/../autoload.php‘)) {
    require_once __DIR__ . ‘/../autoload.php‘;
}
if (is_file(__DIR__ . ‘/../vendor/autoload.php‘)) {
    require_once __DIR__ . ‘/../vendor/autoload.php‘;
}
use OSS\OssClient;
use OSS\Core\OssException;
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
$accessKeyId = "accessKeyId";
$accessKeySecret = "accessKeySecret";
// Endpoint以杭州为例,其它Region请按实际情况填写。这个先手动上传个图片,复制URL里面就有这个东西
$endpoint = "http://oss-cn-beijing.aliyuncs.com";
// 存储空间名称
$bucket= "bucket";//创建的桶名
// 文件名称
$object = $_FILES[‘filename‘][‘name‘];
// <yourLocalFile>由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt
$filePath = $_FILES[‘filename‘][‘tmp_name‘];

// 上传文件时设置回调。
// callbackUrl为,如http://oss-demo.aliyuncs.com:23450或http://127.0.0.1:9090。//
// callbackHost为回调请求消息头中Host的值,如oss-cn-hangzhou.aliyuncs.com。//oss-cn-hangzhou.aliyuncs.com
$url =
‘{
     "callbackUrl":"可访问的ip地址",
     //"callbackBody" : "{bucket:${bucket}, object:${object}}",//这个是json的写法,如果使用,相应的要改callbackBodyType的类型为application/json
     "callbackBody" : "bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&imageInfo.height=${imageInfo.height}&imageInfo.width=${imageInfo.width}&imageInfo.format=${imageInfo.format}&my_var1=${x:var1}&my_var2=${x:var2}",
     "callbackBodyType" : "application/x-www-form-urlencoded"
 }‘;

$var =
   ‘{
       "x:var1":"value1",
       "x:var2":"值2"
    }‘;
$options = array(
  OssClient::OSS_CALLBACK => $url,
  OssClient::OSS_CALLBACK_VAR => $var
);

try{

    $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
	$ossClient->uploadFile($bucket, $object, $filePath);//上传文件
 	$ossClient = (array)$ossClient;//对象转换成数组
  	echo ‘<pre>‘;
    var_dump($ossClient);//打印所有信息
    var_dump(array_values($ossClient)[4]);//把所有value值取出并按照索引数组排列,取4是你上传的地址

} catch(OssException $e) {
    printf(__FUNCTION__ . ": FAILED\n");
    printf($e->getMessage() . "\n");
    return;
}

print(__FUNCTION__ . ": OK" . "\n");

文章转自:https://blog.csdn.net/qq_29994361/article/details/85690396

原文地址:https://www.cnblogs.com/KillBugMe/p/12692216.html

时间: 2024-10-08 06:58:22

阿里云OSS,PHP简单上传文件并返回地址【转】的相关文章

阿里云oss,简单上传

描述:oss比较方便,省去了自己搭建文件服务器的时间,价格比较便宜,下面是java基于oss的简单上传代码 a.添加maven依赖 <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>2.1.0</version> </dependency> b.java代码 public

PHP阿里云OSS,七牛云 上传文件

来源:http://my.oschina.net/rain21/blog/477019 七牛云 PHPSDK下载:http://pan.baidu.com/s/1o69TGcM 7.X版本: DEMO: <?php require_once './vendor/autoload.php';   use Qiniu\Auth; use Qiniu\Storage\BucketManager; use Qiniu\Storage\UploadManager;   $accessKey = 'acce

python2系列 接入阿里云oss sdk 实现上传脚本,亲测

公司图片要从原有的nfs存储上迁移到oss存储上,其实阿里云提供的很多种方式,但是作为一枚运维人员很有必要学会使用ossutil工具,当然接入阿里oss的python的sdk也是很有必要的,下面我就将我写的简单的脚本样例晒一下: #! /usr/bin/env python #! -*- coding:utf8 -*- """ aliyujn oss2 python sdk 上传测试测试!!""" from __future__ import p

Hadoop2.2简单上传文件,web环境下启动报错,求大神

String home = "hdfs://192.168.0.212:8020/";String src = "/root/桌面/111.jpg";String dst = "/6.jpg";InputStream in = new BufferedInputStream(new FileInputStream(src));Configuration conf = new Configuration();FileSystem fs = File

阿里云 轻量应用服务器 上传一个HTML文件或者jsp文件 通过外网IP访问

我选择的是 宝塔Linux,现在就说一下如何往服务器里面传文件然后通过外网IP访问 1.打开宝塔Linux面板登录,安装tomcat,安装好后如图 2.点击tomcat有个文件标识处 3.出现如图 4.打开文件夹webapps/root,上传你想要的文件 tomcat默认根目录在/www/server/tomcat/webapps/ROOT 这个目录下,所以直接访问这个目录下的文件才能访问.例如:http://47.93.195.31:8080/1.jsp 然后在外部浏览器中输入http://I

在阿里云创建私有仓库上传并拉取

在阿里云上创建私有仓库,为后面的微服务上传镜像做准备,后面会安装harbor 操作指南: 1. 登录阿里云Docker Registry $ sudo docker login --username=wgr332574835 registry.cn-hangzhou.aliyuncs.com 用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码. 您可以在产品控制台首页修改登录密码. 2. 从Registry中拉取镜像 $ sudo docker pull registry.cn-han

Xftp连接阿里云Linux,向Linux上传文件,Windows和Linux文件传输

我之前是用SecureCRT连接阿里云Linux的,上传文件用的Alt+p快捷键,感觉不是很方便.后来朋友给我推荐了Xshell,感觉确实好用得很多. 传输文件用的是Xftp,今天在向我的个人网站发布项目的时候总是提示连接不上阿里云Linux,最后各种尝试以后,终于政成功了. 把它记录记录下来,希望能对跟我遇同样问题的朋友一点帮助. 下载好Xftp以后新建一个连接,如下图: 然后就是输入阿里云服务器的公网IP,登录名和密码,记住协议要选择:SFTP,端口号要选择:22 最后大功告成: 原文地址:

PHP实现阿里云OSS文件上传(支持批量)

上传文件至阿里云OSS,整体逻辑是,文件先临时上传到本地,然后在上传到OSS,最后删除本地的临时文件(也可以不删,具体看自己的业务需求),具体实现流程如下: 1.下载阿里云OSS对象上传SDK(PHP版) 通过Github下载 2.解压后,可自行修改目录名称,以下为本人项目实例(aliyun_oss改过之后的名称) 项目目录结构如下: 3.Index.php 为文件上传静态表单页 4.do_upload.php 为文件处理控制页,封装的代码如下:上传文件相关的辅助函数可以自行封装,本文是为了便于

iOS使用阿里云OSS对象存储 (SDK 2.1.1)

最近项目中用到了阿里云OSS对象存储,用来存储APP中图片.音频等一些数据.但坑爹的阿里云居然在11月20日将SDK版本更新到了2.1.1,然而网上给出的教程都是1.*版本的(针对iOS),两个版本所调用的方法差别较大(自我感觉),当然原理都一样.所以看了两天SDK,自己封装了几个常用的方法. 一.OSS简单介绍 OSS是提供非结构化数据存取的服务,非结构化数据一般包括图片.文档.音频.视频等一些文件.OSS提供了接口,开发者可以通过这些接口对数据进行上传或下载等操作. 开通OSS服务后,创建一