會上傳你檔案的工具

一個都沒有 —— 而且我們驗證過不需要有。

需上傳檔案0 個工具

一個都沒有 —— 而且我們是實測過困難案例才這麼說,不是假設。這個網站上沒有任何一個工具會上傳你的檔案。這一頁會一直留著,因為如果哪天真的有了,你應該在這裡看到,而不是自己在開發者工具裡發現。

這份清單是空的,而它空的原因是我們真的去查了,不是因為困難格式還沒輪到。我們的規劃裡有六個工具被標記為「將來必須上傳」。這六個現在全部有了結論,而且沒有一個最後真的需要伺服器。如果哪天情況改變,那個工具會出現在這一頁、在自己的頁面上帶著「需上傳檔案」徽章,並且在你選檔案之前就說明送出了什麼。

那六個「本來應該需要伺服器」的工具

三個是文書轉換:Word、Excel、PowerPoint 轉 PDF。這正是「這種東西你需要伺服器上的 LibreOffice」的標準範例,我們原本也照這樣規劃。然後我們做了一版瀏覽器實作,拿去跟伺服器流程對測。版面留存率的結果是:履歷類文件 99.7%、真實世界的 Word 檔 98.3%、繁體中文文件 97.2%。轉檔時間在瀏覽器是 13 到 353 毫秒,伺服器端是 1.9 到 6.6 秒 —— 而後者還沒算上傳與下載。伺服器版本是比較慢,不是比較強。

一個是 PDF 轉 PDF/A,我們決定不做。要寫出 PDF/A 的宣告層並不難;真正做到合規則不然,而且沒有任何可用的 PDF/A 驗證器能在瀏覽器裡跑。那意味著我們沒辦法驗證自己的輸出。交付一個自己無法證明的合規功能,比不交付更糟 —— 因為 PDF/A 的全部價值就在於「典藏系統會接受這個檔案」。

一個是 DWG 轉 PDF,我們把它改成 DXF 轉 PDF。我們評估過的 DWG 讀取器全部落在兩類:GPL 授權(與這個站的建置與散布方式不相容),或者商業授權,而可用於網頁部署的方案報價大約是首年六千美元。DXF 是公開文件化的交換格式,有寬鬆授權的解析器,而且每一套 CAD 軟體都能匯出。一個對自己的輸入誠實的窄工具,勝過一個我們根本交付不出來的寬工具。

最後一個是 EPUB 轉 MOBI,我們把它刪掉了。Amazon 在 2025 年 3 月 18 日完成了脫離 MOBI 的轉換,Send to Kindle 現在直接收 EPUB。這個工具會有搜尋量、卻對使用者沒有任何好處,而那是最糟的組合 —— 它的存在會純粹只是為了攔流量。

為什麼要開一個沒有內容的頁面

一個隱私主張只有在「有辦法被推翻」的時候才有價值。「我們絕不上傳你的檔案」講起來很容易,但在一個有幾十個工具的網站上,訪客很難逐一查證。而一個承諾「會列出每一個例外」的頁面是有成本的承諾:它意味著例外出現時,我們必須把它寫下來。

它同時消除了一個容易的誘惑。在一個整體識別就是「本機處理」的網站上,偷偷加一個伺服器端功能,正是那種「反正沒人會發現」所以就這麼做了的決定。有一個唯一職責就是發現這件事的頁面,會讓它困難得多。

所以這一頁不是等著填內容的佔位頁。空的就是正確狀態,而如果你正在讀這段,空的仍然是現在的狀態。

什麼將來還是可能需要上傳

大量掃描文件的光學文字辨識是目前最接近的候選。小量工作可以用 WebAssembly 在本機跑,但要在多語言下維持辨識率,目前仍然是伺服器端引擎比較強 —— 而在 OCR 這件事上,辨識率就是產品本身。

長片影片轉檔在技術上可以在瀏覽器裡做,實務上常常不可行,但理由不一樣:幾百 MB 的檔案還沒跑完,手機就先記憶體不足或因過熱降頻了。那是裝置的極限而不是瀏覽器的極限,所以在那種情況下伺服器解決的是真問題,不是授權問題。

PDF 轉可編輯的 Word 是另一種情況:誠實的答案是沒有人做得好。PDF 存的是定位好的字符而不是段落,所以任何轉換器都在反推一份從來沒有被存下來的結構。把這種猜測搬到伺服器上不會讓猜測變準 —— 這就是為什麼我們寧可解釋這個限制,也不要交付一個讓人失望的東西。

如果真的發生了,我們承諾的規則

它會出現在這一頁,並且寫明「為什麼這件事不能在本機做」的具體理由。不會有任何一類工具是一邊悄悄上傳、網站一邊繼續宣傳自己不上傳的。

那個工具自己的頁面會在「其他每個工具放徽章的同一個位置」放上「需上傳檔案」徽章,讓差別在你選檔案之前就看得見,而不是埋在某一段文字裡。

它會講明送出了什麼、在哪裡處理、保留多久 —— 用具體的說法,而不是「暫時」。而且它會是一個獨立、明確標示的工具,絕不會是某個聲稱本機處理的工具內部的「伺服器端後備方案」。那種無聲的後備方案,正是會讓這個網站上其他每一頁都失去可信度的故障模式。

如果你不信,該查什麼

不要只靠這一頁。打開開發者工具切到 Network 分頁,然後去跑你本來要用的那個工具。如果你的檔案真的被上傳,你會看到一筆體積大約等於你檔案的請求離開瀏覽器。

這個網站也會送出把網路連線限制在自己來源的 Content-Security-Policy,你可以在任何一頁的回應標頭裡讀到它。而離線測試是能拿到最有說服力的一種:載入一個工具、斷掉網路、重新整理、然後轉檔。伺服器端處理不可能通過這一關。

常見問題

這一頁只是行銷話術嗎?

它是一個帶著成本的承諾:它讓我們有義務把每一個例外寫在同一個地方,也逼我們去實測那六個原本假設需要伺服器的工具,而不是默默照那個假設做下去。你隨時可以用自己瀏覽器的 Network 分頁去對照結果,這才是它不只是一句宣稱的原因。

如果你們真的加了會上傳的工具會怎樣?

它會被列在這裡,在它自己的頁面上、與其他每個徽章相同的位置帶著「需上傳檔案」徽章,並且明講為什麼本機處理辦不到。

有沒有可能某個工具上傳了卻不講?

Content-Security-Policy 把連線限制在我們自己的來源,而執行它的是你的瀏覽器。任何往外的傳輸也會在開發者工具裡呈現為一筆體積等同你檔案的請求。

網路類工具算上傳嗎?

不算。那兩頁都沒有檔案輸入欄位。它們向我們自己的端點查詢只存在於網路上的資訊,而且帶著另一個明確說明這件事的徽章。

為什麼不等真的需要時再開這一頁?

因為「等第一個例外出現的那一刻才建立它」,正好是它最不可能被建立的時候。在它還是空的時候就公開,才是讓它可信的原因。