2013-01-06 40 views
5

Có thể tải nhiều hình ảnh vào hệ thống tệp hộp cát (không có hộp thoại "lưu dưới dạng" hoặc hộp thoại tối đa một hộp thoại saveas) không?Tải xuống nhiều tệp và zip - Tiện ích mở rộng của Chrome

sau khi tải xuống, tôi muốn nén chúng thành một .. có thư viện lưu trữ javascript nào không?

Thanks in advance ..

+0

bạn có thể có quyền truy cập vào tất cả các nội dung của 'resources' trong một trang (hình ảnh, tệp js \ css, v.v.) tôi không chắc chắn về lưu trữ thông qua JS – Sudarshan

Trả lời

1

Bạn có thể truy cập hình ảnh như các bộ phận thường xuyên của một số web-trang hoặc tải chúng một cách riêng biệt bằng phương pháp XMLHTTPRequest s. Sau đó, bạn có thể nén chúng trong một kho lưu trữ bằng cách sử dụng thư viện JavaScript JSZip. Mã zip có thể được lưu dưới dạng tệp mà không có hộp thoại "Lưu dưới dạng" (hãy thử ví dụ trên trang web). Mặc dù tôi không chắc chắn lý do tại sao bạn cần sandbox.

Có các thư viện JavaScript khác để nén, ví dụ: một số thư viện được đề cập trong other SO answer.

+0

Không. Không phải là ZIP .. Câu hỏi đã thực sự - khi tôi tải xuống hình ảnh , tôi có thể tải xuống hình ảnh mà không có hộp thoại "saveAs" không? Nhưng ví dụ trên trang web trông đơn giản hơn những gì tôi đã nghĩ ... tôi sẽ thử chúng trước tiên – raj

6

Bạn có thể sử dụng zip.js cho việc này. API này đã có API để tìm nạp nội dung được nén từ HTTP (xem zip.HttpReader hàm tạo) và để viết mã zip được tạo trên hệ thống tệp HTML5 (xem zip.FileWriter hàm tạo).

Dưới đây là một ví dụ sử dụng filesystem API: file

index.html:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Zip JSON data from the BBC into HTML5 FileSystem</title> 
</head> 
<body> 
    <script src="zip.js"></script> 
    <script src="zip-fs.js"></script> 
    <script src="zip-ext.js"></script> 
    <script src="example.js"></script> 
</body> 
</html> 

example.js file:

// create a zip virtual filesystem 
var fs = new zip.fs.FS(); 

// add some files into the zip filesystem 

// add the "bbc-music.json" file in the root directory 
fs.root.addHttpContent("bbc-music.json", 
    "http://www.bbc.co.uk/programmes/genres/music.json"); 
// add the "bbc-learning.json" file in the root directory 
fs.root.addHttpContent("bbc-learning.json", 
    "http://www.bbc.co.uk/programmes/genres/learning.json"); 

// create a file named "test.zip" in the root directory of the HTML5 filesystem 
createFile("test.zip", function(fileEntry) { 
    // export the zip content into "test.zip" file 
    fs.root.exportFileEntry(fileEntry, function() { 
    console.log("done"); 
    }); 
}); 

// function to create a file in the HTML5 temporary filesystem 
function createFile(filename, callback) { 
    webkitRequestFileSystem(TEMPORARY, 4 * 1024 * 1024, function(fs) { 
    fs.root.getFile(filename, { create : true }, callback); 
    }); 
} 
+0

Chrome là nơi Tiện ích mở rộng của Chrome thường chạy. –

+0

Đây là cũ, nhưng đối với cuộc sống của tôi, tôi không thể tìm hiểu cách tải xuống tệp zip đã tạo. Tôi đã tạo công việc, nhưng tôi không chắc chắn làm thế nào để tìm thấy URL cho các tập tin được tạo ra. – GtwoK