| 835 | } |
| 836 | |
| 837 | function parseFilename(headerValue) { |
| 838 | var m = FILENAME_PARAM_RE.exec(headerValue) |
| 839 | if (!m) { |
| 840 | m = headerValue.match(/;[ \t]*filename\*=utf-8''([^;]*)/i) |
| 841 | if (m) { |
| 842 | m[1] = tryDecode(m[1]); |
| 843 | } else { |
| 844 | return; |
| 845 | } |
| 846 | } |
| 847 | |
| 848 | var filename = m[1] || m[2] || ''; |
| 849 | filename = filename.replace(/%22|\\"/g, '"'); |
| 850 | filename = filename.replace(/&#([0-9]{1,5});/g, function(m, code) { |
| 851 | return String.fromCharCode(code); |
| 852 | }); |
| 853 | return filename.substr(filename.lastIndexOf('\\') + 1); |
| 854 | } |
| 855 | |
| 856 | function lower(c) { |
| 857 | return c | 0x20; |