2
我在我的應用程序中有一個文件上傳功能,它無法上傳超過10MB大小的JSON文件。如果用戶上傳文件大於等於10 MB,我的應用程序應將其分割成小於10MB的較小JSON文件。此外,正確的JSON對象需要維護在新的小尺寸文件中。將大型JSON拆分爲Javascript/jQuery中的較小部分
有沒有辦法在Javascript或jQuery中做到這一點?
我在我的應用程序中有一個文件上傳功能,它無法上傳超過10MB大小的JSON文件。如果用戶上傳文件大於等於10 MB,我的應用程序應將其分割成小於10MB的較小JSON文件。此外,正確的JSON對象需要維護在新的小尺寸文件中。將大型JSON拆分爲Javascript/jQuery中的較小部分
有沒有辦法在Javascript或jQuery中做到這一點?
我提出這樣的解決方案,沒有任何特定的庫。它使用一些現代技術,但也許對你有用:
var openFile = function(event, callback) {
// get target input
var input = event.target;
// create an instance of filereader
var reader = new FileReader();
// define handler to get results
reader.onload = function(e){
var contents = e.target.result;
// use a promise maybe to make this neater
callback(contents);
};
// make sure you tell it to read as text
// also maybe add some validation on your input
// for correct types
reader.readAsText(input.files[0]);
};
var getChunks = function(str){
var chunks = [];
// not best at these things but this should be
// around 1mb max
var chunkSize = 1000000;
// while the chunk is less than the size indicated it goes
// into the same item of array
while (str) {
if (str.length < chunkSize) {
chunks.push(str);
break;
}
else {
chunks.push(str.substr(0, chunkSize));
str = str.substr(chunkSize);
}
}
return chunks;
}
var fileInput = document.querySelector('#jsonUpload');
fileInput.addEventListener('change', function(event){
openFile(event, function(str){
console.log(getChunks(str));
});
});
然後,它會讀取來自JSON文件:
<input type='file' accept='*' id="jsonUpload">
壓縮然後解? –
有大塊上傳,你可以使用...看看[plupload](http://www.plupload.com/)例如。它也有多種語言的服務器端代碼 – charlietfl
解析JSON,分成多個部分,將每個部分串起來,上傳。 – dandavis