Blob URL (r ef W3C, nome ufficiale) o URL oggetto (rif. MDN e il nome del metodo) vengono utilizzati con un oggetto Blob o File.
src = "blob: https://crap.crap" Ho aperto l'URL blob che era in src di il video ha dato un errore e non posso aprire, ma è stato lavorare con il tag src come sia possibile?
Gli URL blob possono essere generati solo internamente dal browser. URL.createObjectURL()
creerà un riferimento speciale all'oggetto Blob o File che in seguito può essere rilasciato utilizzando URL.revokeObjectURL()
. Questi URL possono essere utilizzati solo localmente nella singola istanza del browser e nella stessa sessione (cioè la durata della pagina/documento).
Che cos'è l'URL di blob?
Perché è usato?
Blob URL/Object URL è uno pseudo protocollo per consentire agli oggetti Blob e File di essere utilizzati come origine URL per elementi come immagini, collegamenti di download per dati binari e così via.
Ad esempio, non è possibile distribuire un oggetto di dati grezzi oggetto Immagine poiché non saprebbe cosa fare con esso. Richiede ad esempio immagini (che sono dati binari) da caricare tramite URL. Questo vale per tutto ciò che richiede un URL come sorgente. Invece di caricare i dati binari, quindi restituirli tramite un URL, è meglio utilizzare un passaggio locale aggiuntivo per poter accedere ai dati direttamente senza passare attraverso un server.
È anche una migliore alternativa a Data-URI, ovvero stringhe codificate come Base-64. Il problema con Data-URI è che ogni char prende due byte in JavaScript. Inoltre, un 33% viene aggiunto a causa della codifica Base-64. I BLOB sono puri array di byte binari che non hanno un sovraccarico significativo come fa Data-URI, il che li rende più veloci e più piccoli da gestire.
Posso creare il mio URL di blob su un server?
No, gli URL Blob/gli URL oggetto possono essere creati solo internamente nel browser. È possibile creare Blob e ottenere oggetto File tramite l'API di lettura file, sebbene BLOB significhi solo oggetto Binary Large e sia archiviato come array di byte. Un cliente può richiedere che i dati vengano inviati come ArrayBuffer o come Blob. Il server dovrebbe inviare i dati come dati binari puri. I database spesso usano Blob per descrivere anche gli oggetti binari, e in sostanza stiamo parlando fondamentalmente di array di byte.
se avete allora Ulteriori dettagli
È necessario incapsulare i dati binari come un oggetto BLOB, quindi utilizzare URL.createObjectURL()
per generare un URL locale per esso:
var blob = new Blob([arrayBufferWithPNG], {type: "image/png"}),
url = URL.createObjectURL(blob),
img = new Image();
img.onload = function() {
URL.revokeObjectURL(this.src); // clean-up memory
document.body.appendChild(this); // add image to DOM
}
img.src = url; // can now "stream" the bytes
Si noti che URL
può essere prefisso nei browser Webkit, quindi utilizzare:
var url = (URL || webkitURL).createObjectURL(...);
Ora posso nascondere l'URL del video ma può essere registrato ..... qualunque cosa tu faccia se stai mostrando il video sul sito web, allora può essere scaricato ..... Sto facendo un file php che richiede il parametro id e controlla il nome reale e il nome della cartella dal server e quindi se c'è un cookie impostato per l'utente per un indirizzo ip specifico nel database allora lascio che l'utente visualizzi il video ora Se sta usando IDM allora IDM fa ' io uso i cookies quindi il video non può essere scaricato – Waqas
Ma qui c'è un altro se il video è stato scaricato da chrome dallo script php allora può essere scaricato ma U può controllare anche per user-agent quindi sto facendo una classe che sarà in grado di generare e anche nascondere l'utente e dà errore 403 se rileva che c'è un altro programma che sta scaricando il video – Waqas
Anche con il javascript faccio un blob e poi assicurarmi che il blob non sia globale e quindi faccio una tela e disegno e foto dal video ancora e ancora Così sarà molto difficile per i programmi ottenere src di video e sto usando un file php per generare il file audio Dal modo in cui ne ho un altro che non è così semplice e richiede un buon programmatore ..... Puoi creare una pagina con uno script php e generare frame video php impostati come 100 frame su una pagina e poi usare javascript per catturarlo e processarlo anche su canvas + caricare anche la seconda pagina per ottenere altri 100 frame e prima creare il video giocabile. – Waqas