20 messaggi dal 29 aprile 2008
Ricardo lo so che non dovrebbe servirmi ma non ho ancora avuto il tempo di pulire il codice per bene...

Ma lo sai che non mi si visualizza ugualmente l'immagine?

come può essere?

Dove sbaglio?

Se vuoi ti posto il codice che fa l'upload
mandrake32 ha scritto:

Se vuoi ti posto il codice che fa l'upload


posta pure...

Creazione Siti Vicenza
Posizionamento Siti - SEO
20 messaggi dal 29 aprile 2008
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.OleDb;
using System.IO;
using System.Data;
using System.Drawing.Drawing2D;
using System.Drawing;
using System.Drawing.Imaging;
using System.Globalization;

public partial class insert_image : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

bool IsImage(string fileName)
{
string ext = Path.GetExtension(fileName).ToLower();
bool imageFlag = false;

if (ext != null)
{
switch (ext)
{
case ".emf": // Enhanced Windows metafile image format
case ".exif": // Exchangable Image Format
case ".ico": // Windows icon image format (extension .ico)
case ".wmf": // Windows metafile image format (extension .wmf)
case ".png": // Specifies the W3C Portable Network Graphics image format (extension .png)
case ".gif": // Graphics Interchange Format image format (extension .gif)
case ".bmp": //Bitmap image format (extension .bmp)
case ".tiff": // Tag Image File Format (extension .tif)
case ".tif": // Tag Image File Format (extension .tif)
case ".jpeg": // Joint Photographic Experts Group image format (extensions .jpg, .jpeg)
case ".jpg": imageFlag = true; break; // Joint Photographic Experts Group image format (extensions .jpg, .jpeg)

default: imageFlag = false; break; // Not a supported file type.
} // switch (ext)
} // if (ext != null)
else
imageFlag = false;

return imageFlag;
} // bool IsImage(string fileName)


void CalcolaAspectRatio(double orgWidth, double orgHeight, ref double newWidth, ref double newHeight)
{
// Se le dimensioni dell'immagine originale e quelle nuove coincidono non facciamo nulla.
if ((orgWidth == newWidth) && (orgHeight == newHeight)) return;

// Se le dimensioni originali dell'immagine sono minori di quelle desiderate lasciamo stare.
// In pratica NON facciamo l'ingrandimento della stessa.
if ((newWidth > orgWidth) && (newHeight > orgHeight))
{
newWidth = orgWidth;
newHeight = orgHeight;
return;
}

double resw = newWidth;
double resh = newHeight;
double aw = orgWidth / orgHeight; // fattore larghezza.
double ah = orgHeight / orgWidth; // fattore altezza.

// Se l'immagine è più piccola del Thumbnail forziamo le dimensioni di
// quest'ultimo alle dimensioni dell'immagine.
if (resw > orgWidth) resw = orgWidth;
if (resh > orgHeight) resh = orgHeight;
// Se le dimensioni dell'immagine e del Thumbnail corrispondono non facciamo nulla.
// quindi se l'immagine è quadrata...
if (orgWidth != orgHeight)
{
// Se l'immagine non è quadrata
// continuiamo a fare i nostri controlli per calcolarne le
// giuste dimensioni e quindi creare la nostra nuova immagine con
// l'aspectratio corretto.

// Se l'immagine è più larga che alta
if (orgWidth > orgHeight)
{
// L > H => L = tL
// La larghezza del TN sarà quella da noi stabilita
// quindi dobbiamo solo assegnarla.
resw = resw;
// L'altezza del TN invece dovrà essere ricalcolata
// in proporzione alla larghezza dell'immagine originale.
// L > H => tH = tL * (H / L)
resh = ah * resw;
} // if (tmporgWidth > tmporgHeight)
else
{
// Altrimenti se l'immagine è più alta
if (orgWidth < orgHeight)
{
// L < H => H = tH
// L'altezza del TN sarà quella da noi stabilita
// quindi dobbiamo solo assegnarla.
resh = resh;
// La larghezza del TN invece dovrà essere ricalcolata
// in proporzione alla altezza dell'immagine originale.
// L < H => tL = tH * (L / H)
resw = aw * resh;
} // if (orgWidth < orgHeight)
} // else
} // if (orgWidth != orgHeight)

// assegnamo i valori calcolati alle nostre due variabili ed il gioco è fatto.
newWidth = resw;
newHeight = resh;
} // void CalcolaAspectRatio(double orgWidth, double orgHeight, ref double newWidth, ref double newHeight)

void UploadAndResizeAnImage(HttpPostedFile file, double newWidth, double newHeight, string virPath, bool overwrite)
{
string destPath = ".";
double resWidth = 1.0;
double resHeight = 1.0;
bool owr = false;
bool exist = false;

if (virPath != "") destPath = virPath;
if (newWidth > 0) resWidth = newWidth;
if (newHeight > 0) resHeight = newHeight;

if (overwrite)
owr = true;
else
owr = false;

int pathCheck = (destPath.Substring(destPath.LastIndexOf('/') + 1)).Length;
if (pathCheck > 0) destPath += "/";

string fileName = Path.GetFileName(file.FileName);
string estensione = Path.GetExtension(file.FileName).ToLower();

ImageCodecInfo[] imgCodec = ImageCodecInfo.GetImageEncoders();
EncoderParameters encPars = new EncoderParameters(2);
EncoderParameter encPar1 = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);
EncoderParameter encPar2 = new EncoderParameter(System.Drawing.Imaging.Encoder.Compression, 100L);

encPars.Param[0] = encPar1;
encPars.Param[1] = encPar2;

destPath = Server.MapPath(destPath);
exist = File.Exists(destPath + fileName);

if (!exist && (fileName.Length != 0) || owr)
{
if (!IsImage(fileName))
{
if (fileName.Length != 0)
Status.Text += "<span style=\"color:Red;\">File '" + fileName + "' is not a valid image format. Upload... Aborted.</span><br>";
return;
} // if (!IsImage(fileName))


using (System.Drawing.Image image = System.Drawing.Image.FromStream(file.InputStream))
{
CalcolaAspectRatio(image.Width, image.Height, ref resWidth, ref resHeight);

using (Bitmap bitmap = new Bitmap((int)(resWidth), (int)(resHeight)))
{
string message = "Uploaded";

bitmap.SetResolution(image.HorizontalResolution, image.VerticalResolution);

Graphics g = Graphics.FromImage(bitmap);
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.SmoothingMode = SmoothingMode.HighQuality;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.CompositingQuality = CompositingQuality.HighQuality;
g.DrawImage(image, new Rectangle(0, 0, (int)(resWidth), (int)(resHeight)));
g.Dispose();

if (exist && owr)
{
message = "OverWritted";
try
{
File.Delete(destPath + fileName);
}
catch (IOException ioe)
{
message = "<div id=\"error\">Error: " + ioe.GetType().Name + ": The write operation could not be performed because the specified part of the file is locked. Not OverWritted</div>";
}
} // if (exist && owr)

if ((estensione == ".jpg") || (estensione == ".jpeg"))
bitmap.Save(destPath + fileName, imgCodec[1], encPars);
else
bitmap.Save(destPath + fileName, image.RawFormat);

Status.Text += "<span style=\"color:Green;\">File '" + fileName + " &#64; [" + (int)(image.Width) + "px X " + (int)(image.Height) + "px]' " + message + " with this new size [" + (int)(resWidth) + "px X " + (int)(resHeight) + "px]</span><br>";
} // using(Bitmap bitmap = new Bitmap( (int)(resWidth), (int)(resHeight)))
} // using(Image image = Image.FromFile(file))
} // if (!exist && (fileName.Length != 0) || owr)
else
{
if (exist && (!owr))
Status.Text += "<span style=\"color:Red;\">Error : The file \"<u><b><i>" + fileName + "</i></b></u>\" already exist... Upload Aborted.</span><br>";
}
} // void UploadAndResizeAnImage(HttpPostedFile file, double newWidth, double newHeight, string virPath, bool overwrite)

//Inizio Test1 dello script
int GetUserID()
{
string userID = "0";
// C'è qualcosa nella querystring?
if (Request.QueryString.Count != 0)
{
if (Request.QueryString["userid"] != null)
userID = Request.QueryString["userid"];
else
userID = "0";
}
return (Convert.ToInt32(userID));
}
//Fine Test1 dello script

void InserisciNomiDeiFilesNelDB_Access(string fileList, char token, string Categoria)
{
//string fileName = Server.MapPath("image_insert/") + FileUpload1.FileName;
// Estraggo dalla lista concatenata i nomi dei file e ne creo un array di stringhe.
string[] fileListSplitted = fileList.Split(new Char[] { token });
// Conto quante stringhe ne sono uscite
int fLS = fileListSplitted.Length;
string fileName = "";
Status.Text += "<br><hr>Inserimento dei dati nel DataBase : <br><br>";
foreach (string s in fileListSplitted)
{
if (s != "")
{
fileName = s;
// Qui inserite la parte di codice per l'inserimento vero e proprio nel DataBase
int userID = GetUserID();
string connString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("App_Data/Immagini.mdb") + ";";
string sqlString = "INSERT INTO [Privata3] (ID,descrizione,immagine) VALUES ('" + userID + "','" + fileName + "', '" + Categoria + "');";
using (System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(connString))
{
conn.Open();
System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(sqlString, conn);
try
{
cmd.ExecuteNonQuery();
Status.Text += "<span style=\"color:Green;\">File '" + fileName + "' Inserito correttamente. <b>Ok!</b><br></span>";
}
catch (Exception ex)
{
// Response.Write("<br>Si &egrave; verificato un errore durante l'esecuzione dello script SQL corrente.<br>");
Status.Text += "<span style=\"color:Red;\">Errore : " + ex.Message + "</span><br>";
}
finally
{
conn.Close();
}
} // using (OleDbConnection conn = new OleDbConnection(connString))
// Fine codice per inserimento nel DataBase

}
} // foreach (string s in fileListSplitted)
}

protected void SubmitButton_Click(Object sender, EventArgs e)
{
HttpFileCollection uploadedFiles = Request.Files;
Status.Text = "";
string ListaNomi = "";

string Categoria = "Default";
if ((categoria.Text != "") && ((categoria.Text.ToString()).Length > 0)) Categoria = categoria.Text;

for (int i = 0; i < uploadedFiles.Count; i++)
{
// Qui sotto definisci le dimensioni che vuoi, la cartella di destinazione
// e se l'applicazione deve sovrascrivere o no i files preesistenti.
//
// UploadAndResizeAnImage(HttpPostedFile file, double newWidth, double newHeight, string virPath, bool overwrite)
//
// Quindi se scrivo come qui sotto :

UploadAndResizeAnImage(uploadedFiles[i], 1024.0, 768.0, "image_insert/", true);
// significa che voglio che ogni immagine inviata (uploadedFiles[i])
// venga ridimensionata a 1024x768 (tenendo conto però delle proporzioni originali)
// e che se il file esiste non deve essere sovrascritto (overwrite = false).
// Chiaro? Più di così ;)

// Vogliamo pure i Thumbnails??? allora aggiungiamo, sempre in questo ciclo for :
UploadAndResizeAnImage(uploadedFiles[i], 150.0, 150.0, "image_insert/miniature/", true);
// significa che voglio che ogni immagine inviata (uploadedFiles[i])
// venga ridimensionata a 150x150 (tenendo conto però delle proporzioni originali)
// e che se il file esiste non deve essere sovrascritto (overwrite = false).
// Creiamo una lista concatenata dei file processati

if (uploadedFiles[i].FileName != "")
{
// Se serve recuperare il nome del file per inserirlo in un DB lo potete recuperare qui.
// Consiglio di creare una lista concatenata di stringhe separate da un carattere
//( nel nostro caso è bene usare un carattere che non è possibile usare nel nome del file cioè "|" )
// ListaNomi += Path.GetFileName(uploadedFiles[i].FileName) + "|";
ListaNomi += Path.GetExtension(uploadedFiles[i].FileName) + "|";
}
}

InserisciNomiDeiFilesNelDB_Access(ListaNomi, '|', Categoria);
}
}// protected void SubmitButton_Click(Object sender, EventArgs e)

non so come fare dimmi tu...
Questo script l'hai preso da qualche parte? puoi indicarmi da dove che lo scarico anch'io? cosi ad occhio sembra che manchi qualcosa...

Creazione Siti Vicenza
Posizionamento Siti - SEO
20 messaggi dal 29 aprile 2008
Ciao Ricardo infatti non è il mio ho cercato sui forum in giro e se non ricordo male ho anche il filr in formato .rar...sevuoi te lo passo...comunque lo trovato su html nel loro forum...è di un certo riddick...

Sono riuscito a mettere tutta la path del percorso nel database ma ora non so il perchè non mi fa visualizzare l'immagine...

Mi puoi aiutare?
Si si prova ad inviarmelo all'email ricardo.bagnati@gmail.com Grazie!

comunque fai una prova, visualizzando la pagina nel browser fai click col tasto destro del mouse e seleziona la voce html, si aprira un file di testo con tutto l'html generato dalla pagina, prova a postarlo che diamo un'occhiata....

Creazione Siti Vicenza
Posizionamento Siti - SEO

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.