MTK Browser F&Q

[FAQ1]下载A图片,再下载B图片时,提示,“该文件已存在,是否覆盖”(Server提供不

规范的下载pic url导致)

[DESCRIPTION]

进入浏览器,下载一图片后,再下载其他图片时,提示,“该文件已存在,是否覆盖”

详细问题描述:

1  例如登录百度网页,进入图片库,选择一个图片打开,长按该图片调出选项菜单,选择“保存图片”进行图片下载;

2  再切换到下一张图片,长按该图片调出选项菜单,选择“保存图片”进行图片下载进行图片下载。

Result:有时会提示“该文件已存在,是否覆盖”。

[Cause]

当长按下载时,不会有图片的任何信息,只有图片的url,所以此时下载,只会根据url来获取文件名。

这里,具体解析url获取文件名的方法是在

alps/packages/apps/Browser/src/com/android/browser/DownloadHand

onDownloadStartNoStream()方法,String filename = URLUtil.guessFileName(url,

contentDisposition, mimetype);而此方法具体在framework,可以自己看下,Google默认会过滤掉url'?'后面的条件匹配字符。

举例如下(分析登录百度网页下载图片的LOG):

baidu server 提供规范的下载pic url

03-22 18:26:09.680   682  2335 I DownloadManager: Initiating request for

download 3,currentThread id: 86

03-22 18:26:09.895   682  2335 V DownloadManager: writing

http://t1.baidu.com/it/u=353759805,906057158&fm=19&gp=0.jpg to

/storage/sdcard0/Download/u=353759805,906057158&fm=19&gp=0.jpg

03-22 18:26:33.148   682  2406 I DownloadManager: Initiating request for

download 5,currentThread id: 107

03-22 18:26:33.327   682  2406 V DownloadManager: writing

http://t3.baidu.com/it/u=4274691656,2158184984&fm=19&gp=0.jpg t/storage/sdcard0/Download/u=4274691656,2158184984&fm=19&gp=0.jp

前两次下载时server pic url 分别是:

http://t1.baidu.com/it/u=353759805,906057158&fm=19&gp=0.jpg

http://t3.baidu.com/it/u=4274691656,2158184984&fm=19&gp=0.jpg

webkit 解析出的file name 依次是:

u=353759805,906057158&fm=19&gp=0.jpg

u=4274691656,2158184984&fm=19&gp=0.jpg

--file name不一样,所以没有弹出"file already exist" alertdialog.

baidu server 提供不规范的下载pic url

03-22 18:27:12.966   682  2470 I DownloadManager: Initiating request for

download 6,currentThread id: 122

03-22 18:27:13.153   682  2470 V DownloadManager: writing

http://timg01.baidu1img.cn/timg?imagewise_list&size=b320_416&quality=&sec=1363948f0d8cfa78ad91101ddd90c7a710&src=http%3A%2F%2Ft1.baidu.com%2Fit%

26691%2C356014008%26fm%3D17 to /storage/sdcard0/Download/timg.

 

03-22 18:27:36.874   682  2512 I DownloadManager: Initiating request for

download 7,currentThread id: 136

03-22 18:27:37.090   682  2512 V DownloadManager: writing

http://timg01.baidu1img.cn/timg?imagewise_list&size=b320_416&quality=&sec=13639480

b65a5fea9c32165e38cbdf13ee3&src=http%3A%2F%2Ft1.baidu.com%2Fit%

46258%2C3952876324%26fm%3D17 to /storage/sdcard0/Download/timg.

最后两次下载时,server pic url分别是:

http://timg01.baidu1img.cn/timg?imagewise_list&size=b320_416&quality=&sec=1363948

f0d8cfa78ad91101ddd90c7a710&src=http%3A%2F%2Ft1.baidu.com%2Fit%

26691%2C356014008%26fm%3D17

http://timg01.baidu1img.cn/timg?imagewise_list&size=b320_416&quality=&sec=13639480

b65a5fea9c32165e38cbdf13ee3&src=http%3A%2F%2Ft1.baidu.com%2Fit%

46258%2C3952876324%26fm%3D17

webkit 解析filename时却掉了?后面的query string,得到的filename 分别是:timg.jpeg

timg.jpeg得到的file name 是一样的,所以按照cu feature, 弹出"file already exsit " alert

dialog.--综上所述:root causebaidu server 提供的下载pic url 不规范导致

你可能感兴趣的:(MTK Browser F&Q)