I'm attempting to convert URI data of a .7z file into a .7z file. I'm using Create a file with data ur as a reference but I must be doing something wrong since I can't get it working.
Here's what I have:
testData = {};
testData['application/x-7z-compressed'] = 'data:;base64,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';
function dataURIToBlob(dataURI) {
// Split the dataUri up into parts
// data:[<mediatype>][;<charset>],(data)
var parts = /data:([^;]+)(?:;([^,]+))?,(.+)/.exec(dataURI),
mime=parts[1],
charset=parts[2] || 'charset=US-ASCII',
encodedData=parts[3];
var data;
if (charset === 'base64') {
// If base64 convert to a Uint8 clamped array of character codes
var decodedData = atob(encodedData);
data = new Uint8Array(decodedData.length);
for (var i = 0; i < decodedData.length; i++) {
data[i] = decodedData.charCodeAt(i);
}
} else {
data = decodeURIComponent(encodedData);
}
return new Blob([data], {
type: mime
});
}
function createBlobURI() {
var blob = dataURIToBlob(testData);
var blobURI = URL.createObjectURL(blob);
blobURIAnchor.href = blobURI;
blobURIAnchor.innerHTML = blobURI;
blobURIAnchor.style.display = 'block';
blobURIAnchor.download = 'blob.' + blob.type.split('/')[1];
var blob = dataURIToBlob(testData);
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fh = fso.OpenTextFile("test2.txt", 8, true);
fh.Write(blob);
fh.Close();
}
function insertTestData(mime) {
testData= testData[mime];
}
insertTestData('application/x-7z-compressed');
And:
<button onclick='createBlobURI()'>Blob URI</button>
<a id="blobURIAnchor" href="#" style="display:none"></a>
Pressing the button does nothing. However, when I do it with an image file, it creates the blob successfully. What should I do? Manual conversion through the browser is possible, just paste the URI data of the .7z, click save as and name it .7z.
您的正则表达式不匹配data:;base64,N3...
应该是data:application/x-7z-compressed;base64,N3...
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.