Opracowuję rozszerzenie do Chrome, które będzie zapisywać pliki w folderze pobierania (to nie wszystko, co robię, ale to część, z którą mam problem). Obecnie skupiam się na plikach PDF. Zasadniczo, gdy plik PDF jest otwierany w Chrome, użytkownik może ręcznie zapisać go za pomocą Menu - Zapisz plik jako ... Po prostu próbuję zautomatyzować tę funkcję przy użyciu rozszerzenia, ale nie znalazłem dobrego sposobu na Zrób to.Rozszerzenie Chrome - zapisywanie pliku PDF
Załóżmy, że mogę wykryć, czy bieżąca karta zawiera plik PDF (na podstawie odpowiedzi z pytania this).
Najlepszą rzeczą, jaką zorientowali się tak daleko jest do zainicjowania pobrania:
chrome.downloads.download({
url: tabs[0].url, saveAs: false,
filename: "my file", /* This will be some unique autogenerated identifier */
conflictAction: "overwrite"
});
To działa, ale ma 2 wady:
- plik ma zostać ponownie pobrane, co jest ból, jeśli jest duży. Poza tym plik został już pobrany, więc powinienem móc z niego korzystać.
- Z jakiegoś powodu nie działa to w przypadku plików otwartych lokalnie ("file: // ..."). Zgłasza NETWORK_INVALID_REQUEST i nie pobiera.
Czy istnieje lepszy sposób na zapisanie pliku?
I przystań znaleźli sposób, za pośrednictwem interfejsu API, aby uzyskać dostęp do plików lokalnych zapisane gdzieś na urządzeniu. Niektóre rozwiązania wskazywały na NPAPI, ale teraz jest to przestarzałe. – Rivero
@Rivero: Właściwie nie potrzebuję dostępu (odczyt) do lokalnego pliku. Po prostu muszę gdzieś zapisać otwarty plik PDF i pobrać lokalizację pliku na dysku, którą może pobrać interfejs API do pobierania. Jednak cierpi z powodu problemów, o których wspomniałem. – vesan