Aprire PDF o altro In una apllicazione WEB

mercoledì 12 settembre 2007 - 13.19

a.malisani Profilo | Newbie

Salve,
sto cervando di visualizzare un file pdf o altro in un web form,
il massimo che sono riuscito ad ottere è aprirlo in una nuova pagine come segue:

(come lignuaggio uso c#)
Response.Write("<script language=Javascript>window.open('" + url + "','','width=800,height=550,alwaysRaised=yes,scrollbars=yes,left=20,top=125')</script>");

il mio obbiettivo però è quello di riuscire ad aprirlo slegandomi dal file d'origine.
Nel senso il file d'origine è generato da un programma di gestione documentale che ne rinomina l'estensione,
io pero conosco l'estensione originale e posso quindi copiarlo e riniminarlo in locale dove gira il sito,
e aprilo con comando precendente.
Il massimo sarebbe pero riuscire a caricare in memoria il file (sanza scriverlo e riniminare) ed aprirlo tramite stream o in una finestra nuova o nella medesima.

E' pobbile cio? Esiste qualche altro modo per visualizzare dei file tramite i web form??

Grazie anticipatamente,
Alessandro

Brainkiller Profilo | Guru

>E' pobbile cio? Esiste qualche altro modo per visualizzare dei
>file tramite i web form??

Dipende dal formato, in genere si fa un Response.Redirect sul path del file oppure se si vuole mandare uno stream Response.WriteFile.

Poi l'apertura o meno client-side dipende anche dalle impostazioni del browser e dal browser. In genere con IE e con Acrobat Reader e Office tutti i formati tipo pdf, doc, xls, ecc. si aprono nella finestra del Browser senza problemi.
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

a.malisani Profilo | Newbie

Grazie, allora il writefile mi va benissimo,
pero il problema allora si sposta un po piu a monte, dovendo copiare il file da qualche parte per poterlo poi rinominare
mi generea un errore di protezione nell'atto di scrittura. quindi vorrei risolvere il problema facendo tutto in memoria,
nel senso apro in memoria il file e poi lo visualizzo, ma visulizzo quello in memoria non quello su disco. E' possibile cio?

Brainkiller Profilo | Guru

>Grazie, allora il writefile mi va benissimo,
>pero il problema allora si sposta un po piu a monte, dovendo
>copiare il file da qualche parte per poterlo poi rinominare
>mi generea un errore di protezione nell'atto di scrittura.

Per la scrittura devi dare i diritti di Modify/Write all'utente NETWORK SERVICE (Su Windows 2003) o all'utente ASPNET su XP sulla cartella dove vai a scrivere.

>vorrei risolvere il problema facendo tutto in memoria,
>nel senso apro in memoria il file e poi lo visualizzo, ma visulizzo
>quello in memoria non quello su disco. E' possibile cio?

In questo caso devi avere un MemoryStream o struttura analoga, riempita con i dati binari e scriverla sull'oggetto Response in modo che arrivi al cliente esempio:

Response.Clear(); Response.ContentType = "application/pdf"; MemoryStream ms = new MemoryStream(); //riempimento struttura ms ms.WriteTo(Response.OutputStream); Response.Flush(); Response.End();

Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

a.malisani Profilo | Newbie



Ti ringrazio enormemente!

Alessandro
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5