台灣最大程式設計社群網站
線上人數
1677
 
會員總數:239580
討論主題:185860
歡迎您免費加入會員
討論區列表 >> AJAX / JSON / jQuery >> AjaxUpload+FileReader問題
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
AjaxUpload+FileReader問題
價值 : 100 QP  點閱數:180 回應數:3

樓主

openshop
門外漢
0 1
20 3
發送站內信

原本的AjaxUpload必須上傳之後才能產生預覽的圖片
於是我自己加上了FileReader,可是不知道要怎麼跟原來的AjaxUpload整合在一起
希望可以先預覽圖片後再上傳,感謝!




搜尋相關Tags的文章: [ AjaxUpload ] , [ FileReader ] ,
本篇文章發表於2016-11-21 11:27
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
這堨i能要先知道你的東西性質為何。

基本上為何很少人會做先預覽後上傳的動作原因。
大約有如下幾點

1.基於本機安全性原則。程式並無法直接讀寫本機的檔案。
你最多只能讀取到這個檔案名稱。但無法取到圖片的實際位置路徑
所以光這一點來講。你就無法事先預覽了。

2.安全操作性原則,基本上,還未上傳的圖片,並無法確定之後你發送時,它是真正有上傳的。
所以事先顯示預覽的動作,是很容易造成用戶端的誤會。

3.上傳檔案大小影響資料的建立。其實這個問題跟第2點是很類似。
也是主要再於檔案上傳有無正常的問題。

所以,基於以上幾點,你因該就可以了解,為何外面一般你能找到看到的預覽圖。
都是需要先將圖片上傳才能處理了。

不過倒也不是沒有辦法處理,其實可以用flash或是相關的obj、plus插件來幫你
只是這樣就得要求客戶端安裝(flash倒是不用)相關的套件。
這也是一種麻煩性。所以一般都是不思考這個問題。

我自已的做法是,當用戶操作上傳時。我會先將圖片處理好後放到一個temp的路徑了。
等到資料上傳成功時,再做檔案移動並記錄實體圖片位置的動作。

當然,如果用備端再上傳後,但並未做發送的動作。
那temp的檔案就會一直留在那邊。解決方式也很單純。就是固定一段時間去清理那些檔案就行了。
本篇文章回覆於2016-11-22 10:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
剛查到這一份資料
發現html5有支援可顯示的方式。(但原則上還是不會對應實體路徑處理)
不過倒是可以做到事先預覽的動作。

你研究一下 https://developer.mozilla.org/zh-TW/docs/Using_files_from_web_applications

可以針對圖片處理
本篇文章回覆於2016-11-22 10:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

openshop
檢舉此回應
我的第一段JS裡面就是透過FileReader在本機端預覽
如果上傳之後再預覽會增加伺服器的負擔
所以希望可以先讓使用者在本機端預覽
而且不需要傳送檔案就可以看見結果
使用者確認後再做上傳的動作
本篇文章回覆於2016-11-22 10:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.