thinkPHP實現物件儲存oss,將圖片上傳到阿里雲oss
演示效果和下載地址:http://www.erdangjiade.com/js/1021.html
可以在阿里雲網站下載oss的demo原始碼PHP版:v2.0.5
https://help.aliyun.com/document_detail/32174.html?spm=5176.doc44688.6.375.MwiLwn
不過,阿里雲的這個demo,用的是名稱空間(名稱空間具體功能我也沒搞懂,各位自行百度,高手請路過),如要整合到thinkPHP裡面需要修改下相關檔案和名稱空間,我已經整理好了。
第一步:將oss引入到tp框架裡面,路徑為:
Thinkphp-->Library-->Org,將OSS資料夾放在org裡面。
第二步:公共配置檔案裡面
//oss配置
"OSS_ACCESS_ID" => '',
"OSS_ACCESS_KEY"=> '',
"OSS_ENDPOINT" => '',
"OSS_TEST_BUCKET" => '',
"OSS_WEB_SITE" =>'', //上面4個就不用介紹了,這個OSS_WEB_SITE是oss的bucket建立後的外網訪問地址,如需二級域名,可以指向二級域名,具體可以參考阿里雲控制檯裡面的oss
//oss檔案上傳配置
'oss_maxSize'=>1048576, //1M
'oss_exts' =>array(// 設定附件上傳型別
'image/jpg',
'image/gif',
'image/png',
'image/jpeg',
'application/octet-stream',//阿里雲好像都是通過二進位制上傳,似乎上面4個字尾設定起到什麼用?
),
第三步:公共function裡面
// 返回json
function backJson($code,$info){
$arr['status']=$code;
$arr['info']=$info;
print_r(json_encode($arr));
exit;
}
//oss上傳
/*
*$fFiles:檔案域
*$n:上傳的路徑目錄
*$ossClient
*$bucketName
*$web:oss訪問地址
*$isThumb:是否縮圖
*/
- function
- $fType=$fFiles['type'];
- $back=array(
- 'code'=>0,
- 'msg'=>'',
- );
- if(!in_array($fType, C('oss_exts'))){
- $back['msg']='檔案格式不正確';
- return $back;
- exit;
- }
- $fSize=$fFiles['size'];
- if($fSize>C('oss_maxSize')){
- $back['msg']='檔案超過了1M'
- return $back;
- exit;
- }
- $fname=$fFiles['name'];
- $ext=substr($fname,stripos($fname,'.'));
- $fup_n=$fFiles['tmp_name'];
- $file_n=time().'_'.rand(100,999);
- $object = $n."/".$file_n.$ext;//目標檔名
- if(is_null($ossClient))exit(1);
- $ossClient->uploadFile($bucketName, $object, $fup_n);
- if($isThumb==1
- // 圖片縮放,參考https://help.aliyun.com/document_detail/44688.html?spm=5176.doc32174.6.481.RScf0S
- $back['thumb']= $web.$object."?x-oss-process=image/resize,h_300,w_300";
- }
- $back['code']=1;
- $back['msg']=$web.$object;
- return $back;
- exit;
- }
- 第四步:控制器裡的操作方法裡面,例如控制器是Index,
- publicfunction upPic(){
- //oss上傳
- $bucketName = C('OSS_TEST_BUCKET');
- $ossClient =new \Org\OSS\OssClient(C('OSS_ACCESS_ID'), C('OSS_ACCESS_KEY'), C('OSS_ENDPOINT'),false);
- $web=C('OSS_WEB_SITE');
- //圖片
- $fFiles=$_FILES['pic_1'];
- $rs=ossUpPic($fFiles,'s',$ossClient,$bucketName,$web,0);
- if($rs['code']==1){
- //圖片
- $img = $rs['msg'];
- //如返回裡面有縮圖:
- $thumb=$rs['thumb'];
- }else{
- $this->error('圖片有誤:'.$rs['msg']);
- return;
- }
- }
- 第五步:呼叫,檔案域名pic_1,要與第四步裡面的$_FILES['pic_1']一致。action地址為控制器的操作地址,例如:/index.php/Home/Index/upPic
- <meta charset="UTF-8"/>
- <form action="/index.php/Home/Index/upPic" enctype="multipart/form-data" method="post">
- <input type="file" name="pic_1" value=""/>
- <input type="submit" value="上傳"/>
- </form>
相關推薦
thinkPHP實現物件儲存oss,將圖片上傳到阿里雲oss
演示效果和下載地址:http://www.erdangjiade.com/js/1021.html 可以在阿里雲網站下載oss的demo原始碼PHP版:v2.0.5 https://help.aliyun.com/document_detail/32174.html?sp
spring boot 圖片上傳阿里雲oss雲端儲存
上傳阿里雲工具類: package com.example.demo.common; import java.io.*; import java.net.URL; import java.util.Date; import java.util.Random;
laravel 圖片上傳阿里雲oss
表單: <div class="form-group"> <label class="col-sm-2 control-label">圖片</label> <div class="col-sm-8 media-picker"
物件儲存oss整合到thinkPHP,將圖片上傳到oss裡面
阿里雲的物件儲存oss,類似七牛儲存。 前幾天有客戶需要把圖片放在阿里雲的oss裡面,百度過一些資料,好像都是oss比較舊的版本1.幾的,現在上傳一個比較新的oss版本v2.0.5,並整合到think
檔案上傳-阿里雲OSS-儲存檔案
JS上傳檔案到阿里雲OSS OSS支援流式寫入和讀出。特別適合視訊等大檔案的邊寫邊讀業務場景。 注意在OSS的控制檯:跨域管理中設定允許的方法 <script> var client = new OSS
【上傳元件優化】el-upload元件結合上傳阿里雲OSS實現更優互動
1、效果展示 2、實現程式碼 在components目錄下,新建元件 myImgUpload.vue,程式碼如下: <template> <div> <el-upload :class="disabl
第三方外掛的引用(1) : SSM,springboot 引入ueditor及圖片上傳阿里雲OS和展示
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional/
ThinkPHP框架整合Ueditor編輯器,並將圖片上傳到阿里雲OSS
網上有很多介面美觀整潔的編輯器外掛,但是相比較功能而言,還是百度的ueditor更為豐富,所以我選擇了在專案中使用這款編輯器,下面介紹操作步驟,程式碼不多,自己動手,豐衣足食。 一、在專案中整合Ueditor外掛: 首先,去官網下載對應版本的壓縮包,因為用的是thinkP
在vue專案中實現註冊時改變頭像,同時實現將圖片上傳的伺服器端
一.如何實現在註冊時點選頭像時實現更改圖片的操作 1.將img和input[type="file"]放在同一個div中,利用絕對定位,讓兩者擁有相同的大小,將input的預設樣式變為透明,讓img覆蓋的input之上;img中有一個屬性,acc
canvas畫布儲存圖片,avaScript將圖片轉畫布,用JavaScript將畫布保持成圖片格式,上傳阿里雲
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style>
Java Springboot結合FastDFS實現檔案上傳以及根據圖片url將圖片上傳至圖片伺服器
上一篇文章我們已經講解了如何搭建FastDFS圖片伺服器,環境我們準備好了現在就讓我們開始與Java結合將他應用到實際的專案中吧。本篇文章我們將會展示上傳圖片到FastDFS圖片伺服器以及通過外網的圖片url將圖片上傳至我們自己的圖片伺服器中。 1.建立springbo
使用pluploader,圖片上傳阿里oss
頁面引入jquery 和 plupload.full.min.js(plupload.js) // 封裝ajax 給上傳圖片用 function reqAjax(cmd, data){ var deferred = $.Deferred(); $.ajax(
前端直傳OSS物件儲存(多圖,多標籤上傳)
程式碼下載: 1.簽名在前端完成:點選下載 2.簽名在PHP完成(推薦):點選下載 這裡主要是針對第二種直傳做修改 首先下載第二種壓縮包;,解壓 把檔案複製到專案裡,可以訪問就好 樣式自己改 首先封裝驗籤方法,用於前端ajax呼叫 <?php
終於搞定使用node.js +redis 作為服務端,提供圖片上傳儲存服務
系統不提供業務層面上的邏輯,只負責儲存和結構關係。業務相關的資料,全部通過引數化傳入。 upload.js 檔案程式碼: //自定義引數區 var basePath='e:/';//上傳的根路徑 var tempPath='c:/'; var redis_ip='127.0
使用elementUI實現將圖片上傳到本地
查閱餓了嗎官方文件可以瞭解上傳元件的使用方法。http://element.eleme.io/#/zh-CN/component/upload 前臺的頁面程式碼為: <el-upload class="upload-demo"
vue富文本編輯,編輯自動預覽,單個圖片上傳不能預覽的問題解決:
pac themes indexof conf html_ sta spa load this //預覽<div class="htmlViewBox"> <p v-html="activity_html_defaultMsg" v-show="html
怎麼將圖片上傳封裝成指令?
這裡是修真院前端小課堂,每篇分享文從 【背景介紹】【知識剖析】【常見問題】【解決方案】【編碼實戰】【擴充套件思考】【更多討論】【參考文獻】 八個方面深度解析前端知識/技能,本篇分享的是: 【怎麼將圖片上傳封裝成指令? 】 1.背景介紹 在js-tas
javaEE Springmvc,檔案(圖片)上傳
需要額外匯入檔案上傳的Jar包:commons-io和commons-fileupload的Jar包 ItemController.java(Controller後端控制器,檔案上傳(接收檔案型別的引數)): package com.xxx.springmvc.c
Linux環境下,多圖片上傳提示沒有這樣的檔案或目錄解決方式
//列表縮圖 $title_file = $request->file("title_pic"); $product_file = $request->file("productpic");
java 將圖片上傳到webapp路徑下 路徑獲取方式
//此方法獲取到工程webapp資料夾下 String contexPath= request.getSession().getServletContext().getRealPath("/"); //獲取IP地址埠號以及專案名稱 <% String pat