1. 程式人生 > >php 之跨域上傳圖片 (smallnews筆記)

php 之跨域上傳圖片 (smallnews筆記)

因為要將所有上傳的圖片上傳到一臺獨立的圖片伺服器上面,js上傳時存在跨域問題,網上找到這種,通過php curl方式,將圖片重新發送到另外一臺伺服器上儲存,並返回圖片路徑!


這種方式存在一定問題:
1,上傳大圖片時,比如2M,需要將圖片首先傳到伺服器,然後再傳到圖片伺服器,中間需要4M的傳輸,加大了上傳時間!
2,從伺服器轉到圖片伺服器的時候因為沒有儲存,傳輸使用的是臨時檔案,考慮到圖片格式的限制,將圖片進行了重新命名,傳輸之後對該圖片進行刪除,碰到一些未知問題是可能導致圖片刪除失敗,增加了伺服器儲存空間!


程式碼如下:

public function upload($files = ''){
	if($files === ''){
		$files  =   $_FILES;
	}

	if(empty($files)){
		$this->error = '沒有上傳的檔案!';
		return false;
	}

	$ext = pathinfo(strip_tags($files['file']['name']), PATHINFO_EXTENSION);

	$new_name = dirname($files['file']['tmp_name']).'/'.date("YmdHis").rand(0,99).".".$ext;

	rename($files['file']['tmp_name'],$new_name);

	$fields['img'] = '@'.$new_name;

	//初始化curl        
	$ch = curl_init();

	curl_setopt($ch,CURLOPT_URL, $this->url);

	curl_setopt($ch, CURLOPT_POST, 1 );
	curl_setopt($ch, CURLOPT_POSTFIELDS, $fields );
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

	//執行curl
	$r = curl_exec($ch);
	curl_close($ch);

	@unlink($new_name);

	if($r){
		return json_decode($r,true);
	}else{
		$this->error = "請求失敗";
		return false;
	}
}


相關推薦

php 圖片 smallnews筆記

因為要將所有上傳的圖片上傳到一臺獨立的圖片伺服器上面,js上傳時存在跨域問題,網上找到這種,通過php curl方式,將圖片重新發送到另外一臺伺服器上儲存,並返回圖片路徑! 這種方式存在一定問題: 1,上傳大圖片時,比

ueditor富文本編輯器圖片解決辦法

etop cee 訪問 第一步 支持 fun 初始化 處理 顯示 在使用百度富文本編輯器的過程中,如果是有一臺單獨的圖片服務器就需要將上傳的圖片內容放到圖片服務器,也就是比如在a.com的編輯器上傳圖片,圖片要保存到img.com的跨域上傳圖片功能,而在ueditor官方文

ueditor富文字編輯器圖片解決辦法

在使用百度富文字編輯器的過程中,如果是有一臺單獨的圖片伺服器就需要將上傳的圖片內容放到圖片伺服器,也就是比如在a.com的編輯器上傳圖片,圖片要儲存到img.com的跨域上傳圖片功能,而在ueditor官方文件中說不支援單圖上傳的跨域, 網上查了一下各種花裡胡哨,一頓操作猛如虎,比如加document.dom

vue+elemenui 圖片

.vue 檔案 主要注意這兩個: action 請求的地址。直接請求介面https://… 由於同源策略會出現跨域問題,需要後面配置代理,使本地可以跨域請求介面。 name 表單name值 <temeplate> <el-uplo

Ajax使用 jQuery,php非同步圖片二進位制流儲存到新浪雲平臺storage

這兩天實現了一個釋出圖片的功能,可謂是一波三折,bug不斷啊,趁剛搞定,趕緊把過程寫下來,順便把程式碼傳過來。記錄了圖片在本地的儲存和 將本地的圖片以二進位制流提交到後臺php檔案 在html檔案中的操作自然就是在表單form元素中新增屬性  enctype="multi

java用ajax實現圖片

說明 : 圖片伺服器是用Nginx搭建的,用的是Php語言 這個功能 需要 用到兩個js檔案: jquery.js和jquery.form.js <script type="text/javascript" src="js/jquery.js"></scr

Kindeditor圖片正確修改方法

Kindeditor一般呼叫方式 var editor; KindEditor.ready(function(K) { editor = K.create('textarea[name="控制元件Name"]', { uploadJson: ' http://img.c

移動端通過ajax圖片文件並在前臺展示——通過H5的FormData對象

com 地址 ces 文件 只需要 capture val data als 前些時候遇到移動端需要上傳圖片和視頻的問題,之前一直通過ajax異步的提交數據,所以在尋找通過ajax上傳文件的方法。發現了H5裏新增了一個FormData對象,通過這個對象可以直接綁定html中

手機端圖片單圖非外掛

手機端上傳圖片 HTML <form action="" method="post" enctype="multipart/form-data"> <div class="uploader" style="display: none;z-

前端檔案3:使用xmlhttprequest圖片web專案

本來之前寫過一篇部落格,也是使用ajax來上傳的圖片,但是發現適應性不是那麼好,可能是後臺做了一些處理吧,然後就自己重新寫了個後臺(單檔案上傳),重新寫一份程式碼來上傳檔案後臺程式碼是用springmvc,還是最最簡單的那個,只是儲存方面放在了七牛雲上前端js程式碼:(這回與

php後端控制可的域名,允許圖片

跨域問題經常需要面對,前端需要做的比較直接 要麼選擇ajax非同步提交,XML或者jsonp,要麼表單提交 jsonp基本可以搞定大部分跨域問題,但問題也比較明顯,只能通過get方式提交 並且jsonp是通過把引數拼到URL上提交請求的 但是所有瀏覽器有URL長

關於使用百度編輯器ueditor編輯器圖片到獨立伺服器的問題

最近公司要使用ueditor編輯器,但是關於跨域上傳的問題,出現了很多不可預料的錯誤,一次次的除錯,一個個的坑,現在終於完成了,把過程寫下來分享給大家,希望大家支援,因為我在百度上查了很久,也沒有找到一個合適的。 首先本地使用ueditor編輯器,這個自己百度,這裡就不多說

JSP Ueditor 實現圖片

img 上傳 .com 圖片 地址 ued 跨域 image con Ueditor的單圖上傳,在官方文檔上明確寫了不支持 然後通過百度找了許多方案,終於有一個可以解決了。 http://www.cnblogs.com/hpnet/p/6290452.html 不

圖片photoClip

center opacity pla utl ack right nbsp static border 首先我們需要引入4個js包(這4個包總共106.6KB) <script src="__STATIC__/hammer.min.js" ></scri

iOS-AFNetworking3.0大量1000張圖片到服務器

gre top defined 內存 agen con 完全 任務 自動 背景: 最近項目要做上傳圖片功能,圖片必須是高清的,所以不讓壓縮,上傳圖片是大量的,比如幾百張,這個如果是用afn,將圖片直接for循環加入到formData裏會出現一個問題,臨時變量太多,導致內

PHP實現文件小結到服務器

保存 我們 不存在 上傳文件 手冊 是你 pan body 需要 1. 文件上傳的插件建議開啟分片上傳,因為服務器默認的單次可上傳文件大小一般很小,又不建議修改服務器配置,所以開啟分片上傳,並將分片的大小設置為小於等於服務器的默認值,這樣可以避免一些錯誤。 2. PHP

IIS+php服務器無法圖片解決辦法

src inf ini 技術 ima 建立 查找 地方 關於 查找網上資料,發現php.ini下面有2個地方關於上傳的配置: file_uploads = On 這裏設置是否允許HTTP上傳,默認應該為ON的 ;upload_tmp_dir= 這裏設置上傳文件存放的臨時

koa2學習旅----處理圖片路徑的解決辦法

console.log(ctx.req.file.path.substring(6)) // 單獨處理圖片上傳路徑,擷取public,防止圖片找不到,教程中的方法直接暴露後臺檔案是大忌,雖然可以通過seo手段處理 let imgurlSubstring = ctx.req.file.path

html圖片進度條變化、音樂

<html> <head> <title>$Title$</title> </head> <link href="css/bootstrap.css" rel="stylesheet"/> <script src=

使用JS-SDK圖片檔案到七牛

一、介紹 Qiniu-JavaScript-SDK (下文簡稱為 JS-SDK)適用於 :IE11、Edge、Chrome、Firefox、Safari 等瀏覽器,基於七牛雲端儲存官方 API 構建,其中上傳功能基於 H5 File API。開發者基於 JS-SDK 可以方便的從瀏覽器端上傳檔案至七