2012-02-28 40 views
11

Tôi đang làm việc trên một ứng dụng dựa trên web có khả năng sẽ được sử dụng trong các môi trường có kết nối Internet không ổn định. Tôi đang triển khai nó như một ứng dụng ngoại tuyến HTML5 sẽ sử dụng bộ nhớ cục bộ HTML5 (thực sự là jStorage của trình cắm thêm jQuery). Đó là một ứng dụng hướng dữ liệu, vì vậy tất cả các mục mới được tạo trong khi ngoại tuyến được lưu trong bộ nhớ cục bộ và sẽ được đồng bộ hóa sau với máy chủ khi kết nối Internet được thiết lập lại. Tôi gần như đã nhận được rằng làm việc nhưng bây giờ tôi đang phải đối mặt với một yêu cầu khi người dùng thực sự sẽ cần phải tải lên một hình ảnh cùng với một trình nhập dữ liệu.
Tôi tìm thấy thông số API HTML5 này - http://www.w3.org/TR/file-upload/ nói về tải lên tệp và truy cập ngoại tuyến. Trước khi tôi đi quá sâu vào điều này - có bất kỳ hàm bao quanh chức năng này mà sẽ đơn giản hóa điều này cho tôi?
Tôi cũng chỉ tìm thấy bài viết này - http://hacks.mozilla.org/2010/02/an-html5-offline-image-editor-and-uploader-application/ sử dụng API TwitPic công khai và tôi muốn nhận được một số phản hồi chuyên nghiệp từ những người ở đây.

Cảm ơn bạn!Tải lên tệp trong các ứng dụng HTML5 ngoại tuyến

+0

Tôi không hoàn toàn chắc chắn rằng tôi hiểu bạn. Bạn không thể tải tệp lên máy chủ ngoại tuyến. Giai đoạn. Bản demo mà bạn đã liên kết phải nắm giữ tệp và chờ kết nối, nhưng không có cách nào kỳ diệu để có được xung quanh đang ngoại tuyến. –

+3

@RaymondCamden - đó là chính xác những gì tôi đang tìm kiếm - giữ tập tin (hoặc nội dung của nó) một nơi nào đó cho đến khi kết nối trở nên có sẵn một lần nữa. Tôi đang viết một ứng dụng "thỉnh thoảng được kết nối", không thể dựa vào kết nối để luôn hoạt động. Nó lưu trữ các bản ghi chưa được lưu trong bộ nhớ cục bộ HTML5 và đồng bộ chúng với máy chủ bất cứ khi nào kết nối có sẵn. Tôi chỉ tự hỏi làm thế nào điều này có thể được thực hiện với các tập tin. –

Trả lời

3

Tôi biết đã lâu rồi kể từ khi tôi hỏi điều này nhưng tôi vẫn thấy câu hỏi này được ưa chuộng và được bình chọn, vì vậy tôi đã chia sẻ cách tôi giải quyết vấn đề này. Trong trường hợp của tôi các tập tin không lớn như vậy, tôi chỉ đơn giản là quyết định MIME mã hóa chúng và sau đó lưu trữ chuỗi trong HTML5 localStorage. Nó hoạt động như một sự quyến rũ.

+1

Thông tin chi tiết sẽ hữu ích. [Câu hỏi SO này] (http://stackoverflow.com/questions/19183180/how-to-upload-an-image-save-it-to-localstorage-and-then-display-it-on-the-next) bao gồm hình ảnh nhưng nó sẽ phục vụ như là một ví dụ tốt về làm những gì được mô tả gần như trong câu trả lời này. –

+0

Hi @insiderpro vì vậy bạn lưu hình ảnh vào localstorage và làm thế nào để bạn đẩy chúng vào máy chủ sau này? Là base64? 10x – Bill

+1

@Bill, vâng, tôi đẩy chúng vào máy chủ dưới dạng chuỗi base64. –

1

Tôi không nghĩ rằng localStorage sẽ là câu trả lời đúng ở đây vì localStorage chỉ lưu các chuỗi và có giới hạn dung lượng 5 megabyte.

Tôi đề nghị một cái gì đó giống như http://pouchdb.com

Nhưng nếu bạn nhấn mạnh vào localStorage, sau đó Mozilla Hacks có một bài viết về lưu trữ hình ảnh trong localStorage: http://hacks.mozilla.org/2012/02/saving-images-and-files-in-localstorage/

indexedDB có thể là một nơi tốt hơn để lưu trữ tập tin: http://hacks.mozilla.org/2012/02/storing-images-and-files-in-indexeddb/

Các vấn đề liên quan