react-native 文件上傳

作為react-native 的初級(jí)小白昧旨,項(xiàng)目中遇到文件上傳的問(wèn)題贝奇,遇到了一些坑點(diǎn)成玫,記錄如下:

  • 第三方庫(kù)的選擇
    react-native-image-crop-picker 可以支持拍照绿渣,從相冊(cè)中進(jìn)行選擇照片和對(duì)照片的裁剪宴咧。
    坑點(diǎn):
    1. iOS打開(kāi)手機(jī)的相冊(cè)根灯,需要用setTimeout 做延時(shí)處理,不然會(huì)出現(xiàn) 手機(jī) 相冊(cè)彈出后又立刻關(guān)閉掺栅,再次點(diǎn)開(kāi)相冊(cè) 會(huì)死機(jī)的情況烙肺。
setTimeout(() => {
      ImagePicker.openPicker({
        cropping: cropit,
        cropperCircleOverlay: circular,
        includeExif: true,
      }).then(image => {
        this.formatUploadData(image);
      });
    }, 1000);
  1. 壓縮的問(wèn)題,壓縮不能使體積壓縮到某個(gè)固定值之下氧卧。因?yàn)樾枰膮?shù)中桃笙,只能填入了壓縮的質(zhì)量。例如:當(dāng)圖片的體積小于1M的時(shí)候沙绝,本來(lái)不需要壓縮的圖片搏明,必要要壓縮。當(dāng)體積為幾十M 的時(shí)候闪檬,即使壓縮也會(huì)大于1M星著。所以 對(duì)于 體積的壓縮是無(wú)法控制的,這個(gè)問(wèn)題還沒(méi)有解決粗悯。

  2. 壓縮后圖片的質(zhì)量下降虚循,預(yù)覽圖片的時(shí)候圖片的質(zhì)量嚴(yán)重受到 影響。

  • 文件的上傳
    react-native中對(duì)于文件的類型的上傳样傍,解決方法:用form data.
const formData = new FormData();
const file = {
      uri: image.path,
      type: image.mime,
      name:image.name,
      size: image.size,
 };
formData.append('file', file);
// 調(diào)用文件上傳的方法

FormData()是js 中的方法横缔,不用引入可以直接用,如果使用的時(shí)候代碼中報(bào)錯(cuò)衫哥,那么可能是eslint 的問(wèn)題哦茎刚!

  • 預(yù)覽圖片
    圖片預(yù)覽的時(shí)候,需要從后端拉取圖片撤逢。后端小伙伴給的接口中膛锭,在瀏覽器中測(cè)試API捌斧,發(fā)現(xiàn) 調(diào)用API 后直接就從瀏覽器上download 下來(lái)了圖片。但在項(xiàng)目中 使用 Axios庫(kù)泉沾,請(qǐng)求 會(huì)獲取200成功捞蚂,但拿不到圖片的資源。
    解決辦法:
    1. 網(wǎng)上使用了一種方法: rn-fetch-blob跷究,可以獲取圖片姓迅,但是我沒(méi)有采用,因?yàn)樵搸?kù)使用了fetch 發(fā)請(qǐng)求俊马,如果我們使用 fetch 的話丁存,則需要獲取 登錄的token ,而登錄是一套及其復(fù)雜的邏輯,這里不方便使用柴我。
    2. 我們采用了另一種方法解寝,讓后端修改了接口,返回了圖片的base 64 碼艘儒,而 react-native 中的Image 方法可以接受將base 64 的碼轉(zhuǎn)化為圖片聋伦,所以解決了問(wèn)題。
  • 圖片緩存
    圖片緩存使用庫(kù)react-native-fs,將圖片存入文件中界睁,放入App 的緩存目錄下RNFS.CachesDirectoryPath, 預(yù)覽圖片的時(shí)候 先判斷路徑是否存在觉增,如果存在,則直接讀取翻斟,如果不存在逾礁,先 download 圖片,然后存入文件中访惜。App 清理緩存的時(shí)候嘹履,則可以直接 清楚 cache 目錄下的文件即可。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末债热,一起剝皮案震驚了整個(gè)濱河市砾嫉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌阳柔,老刑警劉巖焰枢,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚓峦,死亡現(xiàn)場(chǎng)離奇詭異舌剂,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)暑椰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門霍转,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人一汽,你說(shuō)我怎么就攤上這事避消〉吞玻” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵岩喷,是天一觀的道長(zhǎng)恕沫。 經(jīng)常有香客問(wèn)我,道長(zhǎng)纱意,這世上最難降的妖魔是什么婶溯? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮偷霉,結(jié)果婚禮上迄委,老公的妹妹穿的比我還像新娘。我一直安慰自己类少,他們只是感情好叙身,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著硫狞,像睡著了一般信轿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上残吩,一...
    開(kāi)封第一講書(shū)人閱讀 49,046評(píng)論 1 285
  • 那天虏两,我揣著相機(jī)與錄音,去河邊找鬼世剖。 笑死定罢,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的旁瘫。 我是一名探鬼主播祖凫,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼酬凳!你這毒婦竟也來(lái)了惠况?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤宁仔,失蹤者是張志新(化名)和其女友劉穎稠屠,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體翎苫,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡权埠,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了煎谍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片攘蔽。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖呐粘,靈堂內(nèi)的尸體忽然破棺而出满俗,到底是詐尸還是另有隱情转捕,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布唆垃,位于F島的核電站五芝,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏辕万。R本人自食惡果不足惜与柑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蓄坏。 院中可真熱鬧价捧,春花似錦、人聲如沸涡戳。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)渔彰。三九已至嵌屎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間恍涂,已是汗流浹背宝惰。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留再沧,地道東北人尼夺。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像炒瘸,于是被迫代替她去往敵國(guó)和親淤堵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,510評(píng)論 25 707
  • 想寫點(diǎn)東西來(lái)總結(jié)2017年顷扩,馬上就要元旦了拐邪,回首2017年,住院隘截,手術(shù)扎阶,經(jīng)歷過(guò)重大的變故,然后結(jié)婚婶芭,到最后的工作辭...
    靜_480b閱讀 184評(píng)論 0 0
  • 風(fēng)揚(yáng)青衫东臀,雨潤(rùn)青絲,芭蕉滴翠覆地香雕擂。曾經(jīng)佳人游處啡邑,幾許年贱勃,再回首井赌,景已殘谤逼。 嘆!嘆仇穗!嘆流部! 月映嬌顏,夜隱良宵纹坐,...
    Longczx閱讀 229評(píng)論 2 2
  • 防君子不防小人~~
    mochase閱讀 153評(píng)論 0 0