|
48 | 48 | }
|
49 | 49 | }
|
50 | 50 |
|
| 51 | + /** |
| 52 | + * Loads a given File object via FileReader interface. |
| 53 | + * |
| 54 | + * @param {Blob} file Blob object |
| 55 | + * @param {Function} onload Load event callback |
| 56 | + * @param {Function} [onerror] Error/Abort event callback |
| 57 | + * @param {string} [method=readAsDataURL] FileReader method |
| 58 | + * @returns {FileReader|boolean} Returns FileReader if API exists, else false. |
| 59 | + */ |
| 60 | + function readFile(file, onload, onerror, method) { |
| 61 | + if (!$.FileReader) return false |
| 62 | + var reader = new FileReader() |
| 63 | + reader.onload = function () { |
| 64 | + onload.call(reader, this.result) |
| 65 | + } |
| 66 | + if (onerror) { |
| 67 | + reader.onabort = reader.onerror = function () { |
| 68 | + onerror.call(reader, this.error) |
| 69 | + } |
| 70 | + } |
| 71 | + var readerMethod = reader[method || 'readAsDataURL'] |
| 72 | + if (readerMethod) { |
| 73 | + readerMethod.call(reader, file) |
| 74 | + return reader |
| 75 | + } |
| 76 | + } |
| 77 | + |
51 | 78 | /**
|
52 | 79 | * Loads an image for a given File object.
|
53 | 80 | *
|
|
140 | 167 | img.src = url
|
141 | 168 | return img
|
142 | 169 | }
|
143 |
| - return loadImage.readFile(file, function (e) { |
144 |
| - var target = e.target |
145 |
| - if (target && target.result) { |
146 |
| - img.src = target.result |
147 |
| - } else if (reject) { |
148 |
| - reject(e) |
149 |
| - } |
150 |
| - }) |
| 170 | + return readFile( |
| 171 | + file, |
| 172 | + function (url) { |
| 173 | + img.src = url |
| 174 | + }, |
| 175 | + reject |
| 176 | + ) |
151 | 177 | }
|
152 | 178 | }
|
153 | 179 | if ($.Promise && typeof callback !== 'function') {
|
|
179 | 205 | callback(img, data)
|
180 | 206 | }
|
181 | 207 |
|
182 |
| - // Loads a given File object via FileReader interface, |
183 |
| - // invokes the callback with the event object (load or error). |
184 |
| - // The result can be read via event.target.result: |
185 |
| - loadImage.readFile = function (file, callback, method) { |
186 |
| - if ($.FileReader) { |
187 |
| - var fileReader = new FileReader() |
188 |
| - fileReader.onload = fileReader.onerror = callback |
189 |
| - // eslint-disable-next-line no-param-reassign |
190 |
| - method = method || 'readAsDataURL' |
191 |
| - if (fileReader[method]) { |
192 |
| - fileReader[method](file) |
193 |
| - return fileReader |
194 |
| - } |
195 |
| - } |
196 |
| - return false |
197 |
| - } |
198 |
| - |
199 | 208 | loadImage.global = $
|
| 209 | + loadImage.readFile = readFile |
200 | 210 | loadImage.createObjectURL = createObjectURL
|
201 | 211 | loadImage.revokeObjectURL = revokeObjectURL
|
202 | 212 |
|
|
0 commit comments