圖片拖拽上傳
目前用戶要通過Web上傳一個文件是通過 <input type="file /"> 這個標記。具體過程需要在一個很傻的對話框里定位文件夾 -> 在大量的文件里找到目標文件 -> 確定 -> 點「上傳」按鈕。我們能不能把這個步驟簡化,實現拖拽上傳呢?
比如說,
1. 在 資源管理器 里選擇一個圖片
2. 拖拽到一個網頁,比如說一個正在編輯的博客
3. 後台AJXJ自動上傳這個圖片
4. 在正在編輯的博客的當前位置直接插入並顯示圖片。
我想用javascript實現。(跟AJAX一樣,有一點hack的味道。)
原理很簡單。首先用戶拖拽一個圖片到瀏覽器,瀏覽器會自動跳轉到這個圖片。比如說我拖拽 D:\test\1.jpg 到瀏覽器,瀏覽器會跳轉當前頁面到 file:///D:/test/1.jpg。那麼我們要做的就是在瀏覽器跳轉之前:
1. 截獲body.onunload事件,並取消瀏覽器的跳轉
2. 獲知瀏覽器將要跳轉到的頁面
3. 自動填寫 <input type="file" />的地址
4. AJAX後台上傳圖片
5. 把圖片插入當前的正在編輯位置。
發這個帖子的目的,想跟大家探討這個設想的可能性。最後希望得出一個結論:可行,還是不可行。如果可行的話我希望深入探討出一個固定的模式。(像AJAX那樣)
2. 我想在ivx里做個文件分享系統,怎麼實現拖拽上傳文件功能
實現拖拽上傳文件功能不用寫代碼的,有現成的組件可以用,用法不難。下面說一下步驟:
添加拖拽放置容器
總結
需要注意的是拖拽放置容器只是將文件拖拽到了容器內部,具體上傳到伺服器還是要通過文件介面組件的,他只是提供了一種操作模式。另外在細節上,可以在拖拽進入事件下改變容器的背景顏色,然後拖拽離開時再將背景顏色重置為初始狀態。這樣用戶將文件拖進容器區域內會有一個明顯的展示效果的變化,用戶體驗也會更好一些。

總結