第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

JavaScript Blob 下載二進(jìn)制文件,創(chuàng)建損壞的文件

JavaScript Blob 下載二進(jìn)制文件,創(chuàng)建損壞的文件

慕村9548890 2023-10-11 20:08:26
我有一個(gè)二進(jìn)制文件(pickle確切地說(shuō)是python文件)。每當(dāng)請(qǐng)求這樣的文件時(shí),我都會(huì)在服務(wù)器端創(chuàng)建一個(gè)文件,然后通過(guò) Flask 將其send_file作為 AJAX 請(qǐng)求發(fā)送到客戶(hù)端。接下來(lái),我需要自動(dòng)下載這個(gè)文件到客戶(hù)端,所以我使用了這個(gè)答案。問(wèn)題在于,服務(wù)器上創(chuàng)建的文件大小通常為300 Bytes,而客戶(hù)端下載的文件大小>500 Bytes。另外,每當(dāng)我嘗試重用 pickle 文件時(shí),它都不會(huì)加載,并給出錯(cuò)誤:_pickle.UnpicklingError: invalid load key, '\xef'.然而,服務(wù)器文件是無(wú)縫加載的。所以,問(wèn)題是,客戶(hù)端文件在傳輸過(guò)程中被損壞。我認(rèn)為jsblob可能是罪魁禍?zhǔn)?。有人?jiàn)過(guò)這樣的事情嗎?處理 AJAX 的服務(wù)器端代碼(flask)@app.route("/_exportTest",methods=['POST'])def exportTest():    index = int(request.form['index'])    path = g.controller.exportTest(testID=index)    logger.debug("Test file path :"+path)    return send_file(path) #this is wrong somehow關(guān)于exportTest功能:def exportTest(self,testName):    dic = dict()     dic['screenShot'] = self.screenShot #string    dic['original_activity'] = self.original_activity #string    dic['steps'] = self.steps #list of tuples of strings    if self.exportFilePath=='.': #this is the case which will be true        filePath = os.path.join(os.getcwd(),testName)     else:        filePath = os.path.join(os.getcwd(),self.exportFilePath,testName)    logger.debug("filePath :"+filePath)    try:        pickle.dump(dic,open(filePath,"wb"),protocol=pickle.HIGHEST_PROTOCOL)    except Exception as e:        logger.debug("Error while pickling Test.\n Error :"+str(e)) #No such error was printed    return filePath
查看完整描述

1 回答

?
FFIVE

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

補(bǔ)充道:

xhrFields: {

? ? responseType:'blob'

},

在 AJAX 請(qǐng)求中,這為我解決了問(wèn)題。


我完全不知道為什么會(huì)這樣,所以有人可以給出比這更好的答案嗎?

在MDN 文檔中:


The values supported by responseType are the following:

An empty responseType string is treated the same as "text", the default type.

arraybuffer

The response is a JavaScript ArrayBuffer containing binary data.

blob

The response is a Blob object containing the binary data.

...


查看完整回答
反對(duì) 回復(fù) 2023-10-11
  • 1 回答
  • 0 關(guān)注
  • 264 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)