0

J'essaie actuellement de télécharger des images avec un processus automatisé vers un dossier spécifique dans le répertoire en utilisant JavaScript ou tout ce qui peut être intégré dans une extension chrome afin qu'il puisse être géré par un autre programme.Téléchargement d'un côté client image sur le disque dur à partir d'un site Web en utilisant javascript

Cible: L'image que j'ai attachée a la section en surbrillance de l'étiquette d'image que j'essaye de télécharger mais jusqu'ici j'ai seulement trouvé un moyen de la télécharger dans le stockage local comme test. Screenshot of image setup

Ceci est le code que j'utilise actuellement pour mes tests afin de voir si je peux le cibler et le mettre en mémoire locale.

// Get a reference to the image element 
var captchaImg = document.getElementById("captchaImg"); 

// Take action when the image has loaded 
captchaImg.addEventListener("load", function() { 
var imgCanvas = document.createElement("canvas"), 
    imgContext = imgCanvas.getContext("2d"); 

// Make sure canvas is as big as the picture 
imgCanvas.width = captchaImg.width; 
imgCanvas.height = captchaImg.height; 

// Draw image into canvas element 
imgContext.drawImage(captchaImg, 0, 0, captchaImg.width, captchaImg.height); 

// Get canvas contents as a data URL 
var imgAsDataURL = imgCanvas.toDataURL("image/png"); 

// Save image into localStorage 
try { 
    localStorage.setItem("captchaImg", imgAsDataURL); 
} 
catch (e) { 
    console.log("Storage failed: " + e); 
} 
}, false); 

Mes plans pour l'extension de chrome est trop écrire le manifeste et tout le reste une fois que je sais ce que les autorisations sont nécessaires et tels des scripts finaux utilisés pour télécharger et gérer l'image.

Objectifs:

Télécharger l'image sur le disque dur

Télécharger l'image dans un dossier spécifique

ont le téléchargement automatisé

Le code à exécuter à partir d'un chrome extension

+0

Vous pouvez télécharger l'image sur le disque dur en utilisant 'application/octet-steam' de type' MIME'. Vous n'êtes pas certain de la signification de "automatisé"? Êtes-vous en train d'écrire ou de télécharger un fichier dans un dossier spécifique du système de fichiers client? – guest271314

+0

Essayer de télécharger vers un dossier spécifique sur le système de fichiers du client comme le dossier d'images dans Windows et automatisé comme dans dès que la page se charge comme l'écouteur d'événement ci-dessus. Et je devrai chercher l'octet-steam n'importe quelle chance si cela fonctionne vous pourriez le mettre comme une réponse ainsi je peux vous donner le crédit et le représentant pour aider? – BlakeAyrl

+0

Voir aussi http://stackoverflow.com/questions/37106121/jquery-file-upload-plugin-is-possible-to-preserve-the-structure-of-uploaded-fol, http: // stackoverflow.com/questions/33951243/onclick-of-anchor-télécharger-document-dans-même-fenêtre, https://github.com/GoogleChrome/chrome-app-samples/tree/master/samples/filesystem-access – guest271314

Répondre

1

Vous n'avez pas besoin d'utiliser canvas en tant que solution de contournement, utilisez simplement chrome.downloads API.

Les étapes sont les suivantes:

  1. Déclare downloads et host permissions pour permissions déposée en manifest.json

  2. Dans Background page/Event page, appelez chrome.tabs.executeScript pour obtenir l'adresse de l'image. Cette méthode s'exécute par défaut sur l'onglet actif de la fenêtre en cours, vous pouvez définir explicitement l'ID de l'onglet dans lequel exécuter le script. Après avoir obtenu l'adresse de l'image, appelez le chrome.downloads.download pour commencer à télécharger l'image.

exemple d'implémentation:

chrome.tabs.executeScript(null, { code: 'document.getElementsByTagName("img")[0].src' }, function (results) { 
    var address = results[0]; 
    console.log(address); 
    chrome.downloads.download({ 
     url: address, 
     filename: 'YOUR/FILE/PATH/HERE', 
    }); 
}); 
+0

Donc si Je voulais appeler par ID au lieu de tagname que je pourrais remplacer à la place document.getElementById? – BlakeAyrl

+0

@BlakeAyrl, bien sûr –