你所知道 &不知道的「文件上傳」

15天0基礎極速入門數據分析,掌握一套數據分析流程和方法,學完就能寫一份數據報告!了解一下>>

本文從文件上傳的三個階段:「上傳前」、「上傳時」、「上傳后」來說明作者現在已知的所有文件上傳問題,來看看~

好久沒有動筆了,久到都快要忘記文字應該怎么寫、開頭怎么寫。最近做完了一個內部系統,趁下一個還在路上,總結一下在這個系統里遇到的「文件上傳」問題。當我在準備這篇文章的素材的時候,發現自己在做「文件上傳」時仍有部分細節沒有考慮到,產品之路還很長,仍需不斷總結、不斷努力呀。

老規矩,為啥需要上傳文件呢?不上傳行不行得通?

涉及多方溝通的系統,肯定是需要文件往來,此時上傳文件就成了系統不可或缺的功能。不上傳肯定是不行的啊,任務流會斷開,大家都不舒服。

額,既然繞不開,那要怎么做呢?

我會從「文件上傳」的「上傳前」、「上傳時」、「上傳后」三個階段來說明我現在已知的所有文件上傳問題。

一、上傳前

需要明確什么文件可以上傳,可以進入「上傳時」的流程,具體包括:

支持什么樣的文件格式? 圖片?psd?pdf?word?excel?zip?rar?全部?

  1. 支持什么樣的上傳方式? 拖拽上傳?點擊上傳?復制粘貼上傳?
  2. 支持多大的文件? 業務有沒有要求?服務器有沒有限制?阿里云最大限制 20M。
  3. 一次支持上傳多少文件? 單個上傳?批量上傳?
  4. 異常文件怎么處理? 已經上傳過的文件是否還能再次上傳? 空文件是否可以上傳? 一次性上傳多個同名文件怎么處理?

二、上傳中

嗯,「上傳前」里的系統野怪打完了,接下來,該處理「上傳中」的野怪了。

  1. 上傳過程中是否要顯示上傳進度?上傳進度怎么處理?通過瀏覽器上傳文件是無法獲取文件上傳進度的。
  2. 上傳過程中是否要進行數據校驗?
  3. 上傳過程中是否允許取消上傳?
  4. 是否支持斷點續傳?
  5. 上傳失敗時最大重試次數?一次上傳失敗就算失敗?還是在用戶無感知的情況下上傳 3 次失敗才算失敗?
  6. 上傳的文件尤其是圖片是否需要壓縮?壓縮規則是什么?(什么時候需要壓縮?怎么壓縮?期望結果是什么?)是否需要存儲原圖?

三、上傳后

文件上傳成功了,那后續還要做哪些任務才能完美通過呢?

(1)文件什么時候上傳到服務器?選擇文件后自動上傳?綁定其他事件觸發上傳?

  • 上傳成功之后立即上傳。服務器里多余的圖片怎么處理?是否需要一個專門的清除多余圖片的方法,檢測文件是否在數據庫里有記錄,沒有就刪除,定時運行該程序。
  • 用戶點擊“確定”一起把數據提交到后臺?如果用戶此時刷新界面或者關閉界面,文件可能無法保留。

(2)上傳后的文件是否需要預覽?預覽的規則是什么?直接縮放?顯示中間部分?

(3)上傳后的文件是否需要下載?

(4)上傳后的文件是否支持刪除?

(5)上傳后的文件是否需要重命名?重命名的規則是什么?按照時間隨機數?不重命名可能出現什么問題?

(6)如果允許多次上傳,那么采用追加還是覆蓋?

以上就是所有我能想到的文件上傳中的野怪,接下來說一下自己遇到的坑吧。

坑1:psd文件變 png

關于 psd 文件在瀏覽器中的上傳:chrome 瀏覽器會把它當作 image 文件上傳,剪切板粘貼會轉為 png 圖片上傳;safari 瀏覽器會把它當作 file 文件上傳,剪切板不能粘貼該文件上傳。至于其它瀏覽器是怎么處理的,我們沒做兼容,如果你有興趣,可以研究之后告訴我。

坑2:文件名含空格導致沒法下載

坑3:文件名含特殊字符導致預覽出現問題

坑2 和坑3 其實是一個問題,都是因為沒有對用戶上傳的文件進行重命名或特殊字符進行過濾導致的。踩了坑之后,才去研究了一下,發現釘釘也沒有處理特殊字符的問題,圖片縮略圖顯示有問題,心里一陣竊喜。

不過,現在再去看的時候,發現釘釘已經把這個問題修復了,大家都是在讓自己的產品越來越好。

坑4:圖片拖拽的拖拽區域太小,導致用戶體驗很差

支持拖拽這種上傳,一定要設置足夠大的拖拽區域,不然拖拽這個功能就很難用,還不如點擊上傳。上線之后,用戶也不太喜歡用,那么開發這個功能的意義也就不大。

所以說,做產品還是要做得好一點,這樣晚上才睡得安心。

嗯,該分享的內容分享完了,這次就到這里啦。我們,下次再見。

—— End ——

 

本文由 @Q_misky 原創發布于人人都是產品經理。未經許可,禁止轉載

 

給作者打賞,鼓勵TA抓緊創作!
5人打賞
評論
歡迎留言討論~!
  1. 1.單人最大支持多少任務同時上傳
    2.服務器最大支持多少任務同時上傳
    3.各狀態任務排序和展示
    4.若服務器即將達到上限,是否需要進行大文件和小文件上傳區分

    回復
    1. 哇,感謝補充,服務器這端我都沒怎么考慮到。 ;-)

      回復
  2. 好厲害 學習了

    回復
    1. 嘻嘻,如果你有疑問,可以提哈~

      回復
马总会三肖中特