Domanda

Scusate la stupida domanda da principiante qui; la programmazione web non è il mio forte ... (arrossisce)

Ho una pagina aspx in esecuzione su un server web. Ho un BLOB (array di byte) contenente qualsiasi tipo di file binario, oltre a un nome file.

Vorrei spingere questo file per essere scaricato attraverso il browser sul client e aperto usando qualsiasi applicazione predefinita per questo tipo di file. Non voglio davvero salvare il BLOB come file sul server; che lascerà un terribile pasticcio di pulizie a cui non voglio pensare.

Ho provato a cercare su Google questa domanda, ma suppongo che sto usando le parole chiave sbagliate.

Questo dovrebbe davvero essere ovvio come farlo, ma non ho gioia.

Qual è il trucco?

Grazie!

È stato utile?

Soluzione

Response.BinaryWrite(byteArray);

Dovresti anche impostare il tipo di contenuto

Response.ContentType = "application/pdf";

Ma ciò si baserà sul tipo di file.

E il nome del file (e tutto insieme) viene fatto in questo modo

Response.AddHeader("content-disposition", 
   String.Format("attachment;filename={0}", fileName));    
Response.ContentType = "application/pdf";
Response.BinaryWrite(byteArray);

Altri suggerimenti

Innanzitutto, devi conoscere il tipo mime. Una volta che lo sai, puoi impostare la proprietà Response.ContentType. Dopodiché, usa Response.BinaryWrite (). Se non imposti prima la proprietà ContentType, il client non avrà quasi alcuna possibilità di aprire correttamente il file.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top