1. 程式人生 > >微擎怎麼將編輯器裡的圖片上傳到遠端儲存那

微擎怎麼將編輯器裡的圖片上傳到遠端儲存那

背景:前提自己沒有做過介面,全部用微擎的七牛雲自己的遠端附件函式file_remote_upload函式,用的微信藉口上傳圖片,然後過去她的mediaid再用函式就可以了。但是我現在再做編輯器,所以編輯器一旦有圖片就很麻煩,所以我就嘗試先上傳到本地,再在本地用那個函式上傳到七牛雲端儲存。可是,貌似這個函式不支援上傳本地圖片。有沒有人知道則麼做?難不成還要自己搭介面?

==================

過了好三天,我現在確實做出來了,但是有個問題想解決下。

先說下我現在的情況,我並沒有自己搭七牛雲的介面,而是用微擎frame裡面的函式集裡面的函式file.func.php 裡的file_dir_remote_upload()函式,實現檔案一下子上傳。其實這個功能就是我們在微擎裡面的“一鍵上傳”的函式。其實我也不是全看懂,不過最好要大致看懂,裡面的機制。具體自己去frame/function裡面找。

然後我先說下我的編輯器上傳圖片是怎麼個情況。現在編輯器上傳圖片是在一個資料夾裡,然後使用者提交完資料跳轉到制定頁面時,我就在那個頁面裡面新增校驗上傳圖片的那個目錄檔案是否為空,不為空的話,就直接將整個資料夾裡面的檔案遍歷上傳。

是問題好像沒事,但是就是編輯器的非同步上傳出現問題,就是實際上使用者在編輯器裡面新增圖片並顯示出來的時候,圖片就已經上傳到後臺。如果使用者失誤上傳錯照片在編輯器那邊刪除。使用者這樣的操作不會同步刪除後臺檔案,丟給後臺寫程式刪除。

我後臺上傳圖片的時候是想用正則將最近一次更新資料拿出來,然後php正則替換,‘/ueditor/'替換成七牛雲遠端檔案的字首。然後,再將其餘多餘的圖片刪掉。但是你想下如果兩個使用者一個在上傳,一個在提交之後跳轉到指定頁面校驗刪除不是在最近一次資料裡面的檔案,這樣就有可能刪掉其他使用者已經上傳的圖片,以至於,可能到時那個被刪除的使用者的釋出內容裡,圖片無法顯示(因為線上原始檔被刪了)。

------------------------------------------------

所以我想現在應該兩個方案(原本只想到一個,但是剛剛在描述問題時又想到一個可以延伸的方向):

第一種:在百度編輯器建立的上傳目錄裡面加多一級就是以使用者的openid為名胡資料夾,然後使用者提交以後,跳到指定頁面的時候,就找到自己那個openID的資料夾裡對比資料庫資料,獲取到資料庫裡存在的圖片的檔名,然後就先上傳(微擎自帶上傳遠端檔案以後刪除本地檔案,看原始碼有這種操作),然後,剩下的圖片或者別的檔案就可以遍歷刪除了。

 

第二種:就如上面描述思路的過程中發現的問題,能不能在編輯器上刪除那個圖片的同時就直接將那個檔案在後臺刪除。(我覺得這個是最理想也是最難弄的);

 

=========

具體點,其實現在這個問題就是編輯器監聽圖片上傳和刪除,但是資料夾都一樣的,在同一資料夾裡面怎麼監聽?