2012-07-02 23 views
2

我很努力地解決這個問題,似乎我找不到任何有用的指導。所以問題是我想在我的web應用程序中實現一個功能,讓用戶可以選擇在本地編輯任何編輯器上的文本,然後保存文件(保存的文件將在線)。使用Web瀏覽器在本地打開編輯器並使用php檢索服務器上的數據?

建議解決方案:還有我的想法是:

1)在瀏覽器上文件的位置爲用戶創建本地文件夾。

2)使用EXEC()(這樣做檢查相應的錯誤處理的是什麼操作系統,用戶使用的種類和創造)

3)保存文件將應在創建文件之前打開的應用程序(點1)。

4)從文件夾中檢索數據。

如果你有更好的主意,請指教我嗎?

回答

2

總之,你不能這麼做。你可以做一些。請記住,通過HTTP,用戶完全可以控制,而且您無法在用戶的計算機上執行任何操作。如果可以的話,那將被稱爲「一種危險的安全漏洞」,並會在各種瀏覽器的編碼人員趕到時立即停止工作。

您可以使用適當的MIME類型將輸出發送給用戶,該用戶將打開您選擇的編輯器。你甚至可以發明自己的MIME類型來做到這一點(用戶必須自己安裝編輯器)。

然後用戶將文本保存在他的機器上。你不能保存在遠程機器上(不是所有的編輯器),因爲它不是「保存」,而是你想要的「上傳」。例如,

最後,用戶可以恢復他或她剛剛保存的文件,並通過POST表單將其提交給您。

坦率地說,我住的地方我們稱之爲「如何在別人的腳踢之前放一個人的屁股」。想想所有可能的編輯器,每個編輯器可能都有自己的格式:如果用戶(非)有意識地選擇了一些奇怪的東西,例如「Save in Word 2015 Extra Format(壓縮)」,並將文件上傳到服務器 - 您是準備理解文件格式並對它做一些有意義的事情?

一個非常常見的選擇是在HTML中實現幾個Rich Text Editors中的任何一個 - 例如CKEdit或TinyMCE等等。他們會讓用戶生成乾淨的HTML並自動將其上傳到服務器上。

3

你想要做的事情是不可能的。 PHP是服務器端,它無法控制客戶端,它只能發送一串字符進行渲染(顯示的頁面)。

有一些基於JavaScript的豐富編輯器,例如CKEditor和TinyMCE,您可以爲客戶提供這些編輯器,但只要您可以使用即可。此外,由於每個網頁瀏覽器都與另一個網頁瀏覽器有點不同,並且在運行客戶端JavaScript/DOM操作時有其自身的怪癖和錯誤,因此您可能會期望在某個特定版本的某個特定版本中發生很多奇怪的小問題瀏覽器,但不在其他人。如果客戶端關閉了JavaScript,他們根本不會看到任何編輯器。

相關問題