1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
//
// libDLImage.js
//
// libDLImage.js is code for download image data.
// libDLImage.js is ran on ChromeWorker thread.
//
//
// accept message:
// {
// 'imageUrl' :string,
// 'savePath' :string,
// 'refererUrl':string,
// 'cookie' :string
// }
//
// imageUrl : remote image URL
// savePath : full path on local strage
// refererUrl : referer string (optional)
// cookie : cookie string (optional)
//
//
// send message:
// {
// 'status' :string,
// 'message' :JSObject,
// 'savePath':string
// }
//
// status : 'normarl' or 'error'
// message : error message (string) or image data (binary)
// savePath : full path on local strage
// ( only success and same savePath on the accept message )
//
var JSONMessage;
var xhrImg;
function trueImage(){
var instream=xhrImg.responseText;
self.postMessage(
{'status':'normal','message':instream,'savePath':JSONMessage.savePath}
);
return;
};
function falseImage(){
self.postMessage({'status':'error','message':'IMAGE FILE ACCEPT ERROR!!'});
return false;
};
function downloadImage(){
xhrImg=new XMLHttpRequest();
xhrImg.addEventListener("load",trueImage,false);
xhrImg.addEventListener("error",falseImage,false);
xhrImg.open("GET",JSONMessage.imageUrl,false);
xhrImg.overrideMimeType('text/plain;charset=x-user-defined');
if(0<JSONMessage.refererUrl.length){
xhrImg.setRequestHeader('Referer',JSONMessage.refererUrl);
};
if(0<JSONMessage.cookie){
xhrImg.setRequestHeader('Cookie',JSONMessage.cookie);
};
xhrImg.send(null);
};
addEventListener("message",function(event){
JSONMessage=JSON.parse(event.data);
if(JSONMessage.imageUrl===undefined||JSONMessage.savePath===undefined){
self.postMessage({'status':'error','message':'PARAMETA ERROR!!'});
return false;
}
downloadImage();
}, false);
|