ダウンロード可能なファイルをアップロードするようにユーザーに促すアプリを開発しています。ここ は、ダウンロードハンドラである:「クロムやIEを使用している間GAE Python Blobstoreは、FirefoxでUnicodeリテラルを含むファイル名を保存しません。
class ViewPrezentacje(blobstore_handlers.BlobstoreDownloadHandler, BaseHandler):
def get(self,blob_key):
blob_key = str(urllib.unquote(blob_key))
blob_info=blobstore.BlobInfo.get(blob_key)
self.send_blob(blob_info, save_as=urllib.quote(blob_info.filename.encode('utf-8')))
ファイルは(つまり、ユニコードリテラルが正しく表示されます)正しいファイル名でダウンロードされますが、Firefoxでは、それは形式の文字列として保存されます%83%86%E3 ... " Firefoxで正しく動作させる方法はありますか?
はあまりにも、dev_appserverと同じ動作存在するか修正するまで、今のUnicodeのファイル名を持つにあきらめますか?私はこのバグのためにblobstoreでエンコードの問題も経験しました。 https://code.google.com/p/googleappengine/issues/detail?id=2749 – cdagli
私はこのバグにも同じ問題がありました。私はフォームデータをajaxとファイルを介してアップロードファイル形式で送信することで回避しました。それぞれが異なるハンドラをトリガしていました(明らかにblobstoreハンドラはajaxやwebフォームを送信する手段に関係なくUnicodeリテラルを適切にエンコードしません)。ただし、ファイル名の問題は、dev appserverでも発生します。 –