Ipotesi: Una pagina web HTML locale/Javascript che ha accesso a file: //Come aggiungere un file in un oggetto dataTransfer già esistente utilizzando Javascript
All'inizio di un peso per un elemento HTML trascinabile, nel funzione di gestore eventi dragStart(e)
, come posso aggiungere un oggetto File in modo che venga riconosciuto come un file e finito nell'elenco dataTransfer.files
?
Es:
function dragStart(e){
var file = getSomeFileObjFromSomewhere();
e.originalEvent.dataTransfer.effectAllowed = "all";
e.originalEvent.dataTransfer.setData("file", file);
console.log("\nFiles:");
i = 0;
var files = e.originalEvent.dataTransfer.files,
len = files.length;
for (; i < len; i++) {
console.log("\nIndex: " + i + "\nFilename: " + files[i].name);
console.log("Type: " + files[i].type);
console.log("Size: " + files[i].size + " bytes");
console.dir(files[i]);
}
}
In particolare, ha bisogno di lavorare su Chrome/Chromium. E, possiamo presumere che il file esista nell'unità locale. Fondamentalmente, voglio che gli stessi dati siano disponibili quando un file viene trascinato da Windows Explorer a una pagina HTML su un elemento che è trascinabile.
So che questo esiste in Chrome:
e.originalEvent.dataTransfer.setData("DownloadURL", fileType + ":" + name + ":" + filePath);
che scarica il file. Ma questo non è quello che voglio, perché voglio presumere che si tratta di un file esistente e che è necessario accedere al file originale.
Dubito che questo può essere fatto. Se capisco correttamente, stai essenzialmente chiedendo al browser di caricare il file di qualcuno senza che avvenga il trasferimento del file. Non riesco a vedere i browser che permettano che ciò accada, sarebbe un difetto di sicurezza –
Se si è in grado di ottenere file in 'var file = getSomeFileObjFromSomewhere();' quale è lo scopo di impostare l'oggetto file su 'event.dataTransfer'? Cosa stai cercando di ottenere? – guest271314
@KScandrett: l'oggetto File deve essere generato da elementi già accessibili a Javascript (compresi gli oggetti File generati esplicitamente dall'interazione dell'utente con un input di file) –