mirror of
https://github.com/zen-browser/pdf.js.git
synced 2025-07-08 09:20:06 +02:00
Content disposition filename
File name is extracted from headers.
This commit is contained in:
parent
96c573ad38
commit
eb1f6f4c24
8 changed files with 139 additions and 21 deletions
|
@ -15,7 +15,8 @@
|
|||
|
||||
import { assert, createPromiseCapability, stringToBytes } from '../shared/util';
|
||||
import {
|
||||
createResponseStatusError, validateRangeRequestCapabilities
|
||||
createResponseStatusError, extractFilenameFromHeader,
|
||||
validateRangeRequestCapabilities
|
||||
} from './network_utils';
|
||||
import globalScope from '../shared/global_scope';
|
||||
|
||||
|
@ -340,6 +341,7 @@ function PDFNetworkStreamFullRequestReader(manager, source) {
|
|||
this._requests = [];
|
||||
this._done = false;
|
||||
this._storedError = undefined;
|
||||
this._fileName = null;
|
||||
|
||||
this.onProgress = null;
|
||||
}
|
||||
|
@ -350,11 +352,13 @@ PDFNetworkStreamFullRequestReader.prototype = {
|
|||
var fullRequestXhrId = this._fullRequestId;
|
||||
var fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);
|
||||
|
||||
const getResponseHeader = (name) => {
|
||||
return fullRequestXhr.getResponseHeader(name);
|
||||
};
|
||||
|
||||
let { allowRangeRequests, suggestedLength, } =
|
||||
validateRangeRequestCapabilities({
|
||||
getResponseHeader: (name) => {
|
||||
return fullRequestXhr.getResponseHeader(name);
|
||||
},
|
||||
getResponseHeader,
|
||||
isHttp: this._manager.isHttp,
|
||||
rangeChunkSize: this._rangeChunkSize,
|
||||
disableRange: this._disableRange,
|
||||
|
@ -381,6 +385,11 @@ PDFNetworkStreamFullRequestReader.prototype = {
|
|||
networkManager.abortRequest(fullRequestXhrId);
|
||||
}
|
||||
|
||||
// Content-Disposition: attachment; filename=Naïve file.txt
|
||||
if (networkManager.isPendingRequest(fullRequestXhrId)) {
|
||||
this._fileName = extractFilenameFromHeader(getResponseHeader);
|
||||
}
|
||||
|
||||
this._headersReceivedCapability.resolve();
|
||||
},
|
||||
|
||||
|
@ -429,6 +438,10 @@ PDFNetworkStreamFullRequestReader.prototype = {
|
|||
}
|
||||
},
|
||||
|
||||
get fileName() {
|
||||
return this._fileName;
|
||||
},
|
||||
|
||||
get isRangeSupported() {
|
||||
return this._isRangeSupported;
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue