iT邦幫忙

0

heroku 下載檔案常常報錯 (檔名是中文) Python Flask

  • 分享至 

  • xImage

我寫了一個程式放在heroku上 用Python Flask
利用 send_from_directory 下載我程式所製作的檔案
在我電腦裡測試 都沒什模問題
但是常常 會出現
Not Found
The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.
但有時候運作又是正常的 可以正常下載
請問該怎麼解決呢?
(我下載的檔案名稱是中文的)

chcp 65001 搞定
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
㊣浩瀚星空㊣
iT邦大神 1 級 ‧ 2022-03-28 09:34:44
最佳解答

一般上傳或是下載檔案使用中文名稱。
多少會碰到編碼的問題。

一般現在建議的方式是,存放的檔名要轉為英數存放。
實體檔名則是另外記錄下來。提供下載時轉正式的名稱使用。

目前你的問題,先看看你是否有做編碼的檔名的文字轉換。
沒有的話。就容易發生這樣的問題。
畢竟,在WINDOWS上使用的預設編碼還是大多會依BIG5為主。
但LINUX上的會依UTF8為主。

同理。如果已經有做編碼統一處理。如統一為UTF8的情況下。
正常會比較不容易出問題。但如果是統一為BIG5的情況下。
多少會碰到應用字元轉碼而被安全轉碼造成檔名被轉錯的問題。

以上提供給你參考。

deng0921 iT邦新手 5 級 ‧ 2022-03-28 13:24:07 檢舉

謝謝您的回覆 但我把檔名改成英文的一樣報錯..
我在終端機LOG 發現了一些問題
程式所做出的一些參數 有時候正常的 有時候會消失
我在懷疑是 前端送往後端的地方出現了問題

請問 前端HTML 送給後端 PYthon Flask
在語法上有甚麼方法可以確保資料的傳遞不會丟失呢?

想要確保資料傳送不消失。一般的做法是資料JSON後送POST處理。
畢竟JSON是一種字串格式後的統一規範。不容易有編碼的問題(除非有設定編碼

deng0921 iT邦新手 5 級 ‧ 2022-03-28 17:34:15 檢舉

謝謝我知道了

我要發表回答

立即登入回答