17 messaggi dal 11 novembre 2014
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;

namespace Logistica.FOGLIOMATRICOLA
{
/// <summary>
/// Descrizione di riepilogo per foto
/// </summary>
public class foto : IHttpHandler
{

public void ProcessRequest(HttpContext context)
{

FileStream fs = null;
MemoryStream streamReader = null;
MemoryStream streamWriter = null;
byte[] immagine = null;
Bitmap bmpOut = null;
Bitmap loBMP = null;
Graphics g = null;
DataTable dt = ManagerUser.GetAllUser(Convert.ToInt32(context.Request.QueryString["id_utente"]), "", "", "", "", "", "", "", "", "", "", "","","", "","","","","","","","","");
streamReader = new MemoryStream((byte[])dt.Rows[0]["foto"]);

if (context.Request.UrlReferrer.Segments[context.Request.UrlReferrer.Segments.Length - 1].Equals("RicercaFoglio.aspx"))
{

loBMP = new Bitmap(streamReader);
bmpOut = new Bitmap(30, 40);
g = Graphics.FromImage(bmpOut);
g.FillRectangle(Brushes.White, 0, 0, 30, 40);
g.DrawImage(loBMP, 0, 0, 30, 40);
}
else
{
bmpOut = new Bitmap(streamReader);
g = Graphics.FromImage(bmpOut);
g.DrawImage(bmpOut, new Point(0, 0));
}
streamWriter = new MemoryStream();
bmpOut.Save(streamWriter, ImageFormat.Jpeg);
//bmpOut.Save(context.Server.MapPath(".")+"\\foto\\foto"+context.Request.QueryString["id_utente"]+".jpg");
immagine = streamWriter.GetBuffer();
context.Response.BinaryWrite(immagine);
immagine = null;
context.Response.Flush();
context.Response.End();
}

public bool IsReusable
{
get
{
return false;
}
}
}
}

Salve.. tramite questa classe riesco a caricare file riguardanti foto.. volevo sapere se mi potete dare una mano per far si che carica anche file di altre estensioni.. vi ringrazio anticipatamente per l'aiuto
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,

adachigahara ha scritto:

carica anche file di altre estensioni..

Questi altri file si trovano anch'essi nel database, proprio come la foto?

In questo caso, il codice è simile a quello che hai già, meno la parte in cui fai il ridimensionamento.
Per ipotesi, se nella tabella degli utenti ci fosse un campo "Curriculum" in cui hai inserito un file PDF, allora potresti fare:
public void ProcessRequest(HttpContext context) {
  DataTable dt = ManagerUser.GetAllUser(Convert.ToInt32(context.Request.QueryString["id_utente"]), "", "", "", "", "", "", "", "", "", "", "","","", "","","","","","","","","");
  //Recuperi i dati binari dal campo della tabella
  var contenutoBinario = (byte[])dt.Rows[0]["Curriculum"];
  //Scrivi il Content-Type appropriato al tipo di file
  context.Response.ContentType = "application/pdf";
  //E infine invii i dati al client
  context.Response.BinaryWrite(contenutoBinario);
  context.Response.Flush();
  context.Response.End();
}


Vedi se così funziona.

ciao,
Moreno
Modificato da BrightSoul il 20 dicembre 2014 21.41 -

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.