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
Trả lời
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ũ.
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. –
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
@Bill, vâng, tôi đẩy chúng vào máy chủ dưới dạng chuỗi base64. –
tôi đã viết một bài báo một số thời gian trước trên HTML5 tập tin API - http://speckyboy.com/2012/10/30/getting-to-grips-with-the-html5-file-api-2/
Cũng tham khảo các repo GitHub - https://github.com/mailru/FileAPI cho các điều khiển trước.
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/
- 1. Ứng dụng HTML5 ngoại tuyến trên thiết bị Android
- 2. UIWebView lưu trữ các tệp ngoại tuyến HTML5 ở đâu?
- 3. Tải lên lại bằng API tải lên tệp HTML5 -
- 4. Xóa HTML5 AppCache ngoại tuyến
- 5. HTML5 FormData tải lên tệp với RubyOnRails
- 6. Làm việc với hình ảnh trong ứng dụng ngoại tuyến HTML5?
- 7. Tải xuống tệp 'Mô phỏng' trong ứng dụng web HTML5
- 8. Sử dụng tải lên tệp HTML5 bằng AJAX và jQuery
- 9. cách tải lên tệp bằng cách sử dụng tải lên tệp commons trực tuyến api
- 10. các tệp nginx tải lên trực tuyến bằng proxy_pass
- 11. Âm thanh HTML5 trên iOS4 Ứng dụng web ngoại tuyến trên iPhone không phát?
- 12. HTML5 tải lên và tải lên các tệp lớn (> 500MB)
- 13. Windows 8 ứng dụng metro tải xuống ngoại tuyến
- 14. ASP.NET MVC 3: Hỗ trợ tải lên nhiều tệp HTML5?
- 15. HTML5 chỉ sử dụng bộ nhớ cache khi ngoại tuyến
- 16. Cách viết ứng dụng Silverlight ngoại tuyến?
- 17. html5 Tải lên hình ảnh
- 18. Tải lên các tệp lớn trong .NET
- 19. HTML5: Tải lên tệp AJAX với thanh tiến trình
- 20. Sử dụng Backbone.js ngoại tuyến
- 21. html5 lưu trữ ngoại tuyến chuẩn bị db
- 22. Ứng dụng web Android Phonegap HTML5 không hoạt động ngoại tuyến với tệp kê khai bộ nhớ cache
- 23. Tải tệp lên trang HTML5 bằng phím tắt
- 24. Tải lên tệp 500MB + qua ứng dụng web ASP.NET
- 25. Tải tệp lên ftp từ ứng dụng iOS
- 26. ứng dụng ngoại tuyến bằng UIWebview cho iPad
- 27. cách tải xuống các tệp ứng dụng google appengine (đã tải lên)
- 28. Cách tải hình ảnh lên canvas HTML5
- 29. Tải tệp lên bằng cách sử dụng tính năng kéo và thả của HTML5 trong Asp.net
- 30. Trang web tải WebView khi trực tuyến, tải tệp cục bộ khi ngoại tuyến
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. –
@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. –