fluttercommunity / flutter_downloader

Flutter Downloader - A plugin for creating and managing download tasks.
https://pub.dev/packages/flutter_downloader
BSD 3-Clause "New" or "Revised" License
908 stars 511 forks source link

java.io.IOException: File name too long #686

Open shipinbaoku opened 2 years ago

shipinbaoku commented 2 years ago

eg download URL:https://upos-hz-mirrorakam.akamaized.net/upgcxcode/35/94/773099435/773099435_nb3-1-30080.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1657952617&gen=playurlv2&os=akam&oi=3451485230&trid=4b5ce2cd22da459b9372a3c36add73b3u&mid=0&platform=pc&upsig=a97cb8f7a600abb2750d0983d82e9716&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1657952617~hmac=9de3ad8f017b23e103de5831855df6caa29a6051fff94bcd20828e34ba07b795&bvc=vod&nettype=0&orderid=0,1&agrr=1&bw=284963&logo=80000000

Auto set fileName is : fileName = 773099435_nb3-1-30080.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1657952617&gen=playurlv2&os=akam&oi=3451485230&trid=4b5ce2cd22da459b9372a3c36add73b3u&mid=0&platform=pc&upsig=a97cb8f7a600abb2750d0983d82e9716&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1657952617~hmac=9de3ad8f017b23e103de5831855df6caa29a6051fff94bcd20828e34ba07b795&bvc=vod&nettype=0&orderid=0,1&agrr=1&bw=284963&logo=80000000

then download fail,case by filename too long.

You need to modify the logic of getting file names again.

clive107 commented 1 year ago

@shipinbaoku I had a similar issue when the download URL is too long (e.g. AWS pre-signed URL). I pass a fileName to FlutterDownloader.enqueue, then able to download successfully.