Min uploadsmetode skulle kun uploade gif eller jpg filer
Hej,Jeg har en skema, hvor man kan indtaste navn og 3 felter for uploading af billeder (uploading skal IKKE være obligatorisk). Billederne skulle være under 500 KB og være kun i "gif" eller "jpg" format.
Min metode begrænser billedstørrelser på 500 KB, men jeg kan ikke finde ud af at tilføje en kode, som bevirker, at ved uploading af et andet format end ovennævnte kommer der en fejlmeddelelse og data ikke sendes til Access databasen. Så bliver meget taknemlig hvis jeg få hjælp.
Min aspx fil:
---
<%@ Page language="c#" Codebehind="Skema.aspx.cs" AutoEventWireup="false" Inherits="EIS.Skema" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>MultipleUpload</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<LINK href="Style.css" type="text/css" rel="stylesheet">
</HEAD>
<body bgColor="#6a828b">
<FORM id="Form1" method="post" encType="multipart/form-data" runat="server">
<P align="center">
<TABLE id="Table2" bgcolor="#eeffff" borderColor="#000000" cellSpacing="0" cellPadding="1" width="720" border="1">
<TR>
<TD>
<TABLE id="Table1" cellSpacing="0" cellPadding="3" width="718" border="0" align="center" bgColor="#eeffff">
<TR>
<TD width="18"></TD>
<TD width="200">Navn:</TD>
<TD width="450"><asp:textbox id="fNavn" runat="server" Width="200px" MaxLength="100" BackColor="#E0E0E0" tabIndex="1"></asp:textbox>
<asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ErrorMessage="* Du skal angive navn"
ControlToValidate="fNavn"></asp:RequiredFieldValidator></TD>
<TD width="50"></TD>
</TR>
<TR>
<TD width="18" height="50">
</TD>
<TD width="700" colSpan="3" height="50">
Du kan uploade op til 3 billeder. Billederne skal være under 500 KB. og i "Gif" eller "Jpg" format.</TD>
</TR>
<TR>
<TD width="18"></TD>
<TD width="200">Billede 1:</TD>
<TD width="450"><INPUT id="File1" type="file" name="File1" runat="server" size="39"></TD>
<TD width="50"></TD>
</TR>
<TR>
<TD width="18"></TD>
<TD width="200">Billede 2:</TD>
<TD width="450"><INPUT id="File2" type="file" name="File2" runat="server" size="39"></TD>
<TD width="50"></TD>
</TR>
<TR>
<TD width="18"></TD>
<TD width="200">Billede 3:</TD>
<TD width="450"><INPUT id="File3" type="file" name="File2" runat="server" size="39"></TD>
<TD width="50"></TD>
</TR>
<TD width="18"></TD>
<TD width="200"></TD>
<TD width="450"><INPUT id="Submit1" style="WIDTH: 96px; HEIGHT: 20px" type="submit" value="Send" name="Submit1" runat="server" onServerClick="UploadMultipleFiles_Clicked" tabIndex="13"></TD>
<TD width="50"></TD> </TR>
<TR>
<TD width="18"></TD>
<TD width="200" colSpan="3">
<P>
<asp:Label id="lblStor" runat="server" ForeColor="Red" Width="650px"></asp:Label>
<ASP:LABEL id="ResultMsg" runat="server" Width="650px" Visible="False" ForeColor="Green"></ASP:LABEL><BR>
</P>
</TD>
</TR>
<TR>
<TD width="18" height="30"></TD>
<TD width="200" colSpan="3" height="30"></TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
</P>
</FORM>
</body>
</HTML>
--------------------------
Min aspx.cs fil:
---
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
using System.IO;
using System.IO.IsolatedStorage;
namespace EIS
{
/// Summary description for Indberetningsskema.
public class Skema : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox fNavn;
protected System.Web.UI.HtmlControls.HtmlInputFile File1;
protected System.Web.UI.HtmlControls.HtmlInputFile File2;
protected System.Web.UI.HtmlControls.HtmlInputFile File3;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
protected System.Web.UI.WebControls.Label lblStor;
protected System.Web.UI.WebControls.Label ResultMsg;
protected System.Web.UI.HtmlControls.HtmlInputButton Submit1;
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
Response.CacheControl = "no-cache";
}
protected void UploadMultipleFiles_Clicked(object Sender, EventArgs e)
{
Page.Validate();
if (Page.IsValid)
{
string strResultMessage = "";
string strFileName = "";
string strFolderName = "" + MapPath("MultipleUpload/");
HttpPostedFile objFile;
int i;
string strFile1 = File1.PostedFile.FileName;
string strFile2 = File2.PostedFile.FileName;
string strFile3 = File3.PostedFile.FileName;
string fileType1 = File1.PostedFile.ContentType;
string fileType2 = File2.PostedFile.ContentType;
string fileType3 = File3.PostedFile.ContentType;
int fileSize1 = File1.PostedFile.ContentLength;
int fileSize2 = File2.PostedFile.ContentLength;
int fileSize3 = File3.PostedFile.ContentLength;
//hvis filen er mindre end 500 KB
if ((fileSize1 > 500*1024) || (fileSize2 > 500*1024) || (fileSize3 > 500*1024))
{
lblStor.Text = "Du prøver at uploade et billede, der er større end 500 KB!";
}
else
{
try
{
for (i = 0; i <= Request.Files.Count - 1; i++)
{
objFile = Request.Files[i];
if (objFile.FileName != "")
{
strFileName = objFile.FileName;
strFileName = DateTime.Now.ToString("yyyy.MM.dd-HHmmss")+"-" + Path.GetFileName(strFileName);
ViewState["filnavn1"] = DateTime.Now.ToString("yyyy.MM.dd-HHmmss")+"-" + Path.GetFileName(strFile1);
ViewState["filnavn2"] = DateTime.Now.ToString("yyyy.MM.dd-HHmmss")+"-" + Path.GetFileName(strFile2);
ViewState["filnavn3"] = DateTime.Now.ToString("yyyy.MM.dd-HHmmss")+"-" + Path.GetFileName(strFile3);
objFile.SaveAs(strFolderName + strFileName);
}
}
}
catch (Exception errorVariable)
{
strResultMessage = "<font color=red>" + errorVariable.ToString() + "</font>";
}
finally
{
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + MapPath("fpdb/EIS.mdb");
OleDbConnection myConnection = new OleDbConnection(connStr);
string strSQL = "INSERT INTO eis(Navn, File1, File2, File3) Values (@fNavn, @File1, @File2, @File3)";
OleDbCommand cmdInsert = new OleDbCommand( strSQL, myConnection ); cmdInsert.Parameters.Add( "@Navn", fNavn.Text );
if (strFile1 != "")
{
cmdInsert.Parameters.Add( "@File1", ("EIS/MultipleUpload/" + ViewState["filnavn1"]) );
}
else
{
cmdInsert.Parameters.Add( "@File1", "");
}
if (strFile2 != "")
{
cmdInsert.Parameters.Add( "@File2", ("EIS/MultipleUpload/" + ViewState["filnavn2"]) );
}
else
{
cmdInsert.Parameters.Add( "@File2", "");
}
if (strFile3 != "")
{
cmdInsert.Parameters.Add( "@File3", ("EIS/MultipleUpload/" + ViewState["filnavn3"]) );
}
else
{
cmdInsert.Parameters.Add( "@File3", "");
}
//følgende linier fanger den nye ID og viser den efter at man har trykket på Submit-knappen
OleDbCommand GetLastID = new OleDbCommand("SELECT @@IDENTITY", myConnection);
myConnection.Open();
cmdInsert.ExecuteNonQuery();
double LastID = Math.Round(double.Parse(GetLastID.ExecuteScalar().ToString()),0);
string navn = fNavn.Text;
string fil1 = Path.GetFileName(strFile1);
string fil2 = Path.GetFileName(strFile2);
string fil3 = Path.GetFileName(strFile3);
//følgende 2 linier sætter Session-Cookie (det ligger kun i browserens memory)
//og når browseren lukkes forsvinder den. Den indsatte Cookie fanges i Bekraeftelse-side
HttpCookie objCookie = new HttpCookie("myCookie", LastID.ToString());
Response.Cookies.Add( objCookie );
HttpCookie navnCookie = new HttpCookie("nameCookie", navn.ToString());
Response.Cookies.Add( navnCookie );
HttpCookie fil1Cookie = new HttpCookie("file1Cookie", fil1.ToString());
Response.Cookies.Add( fil1Cookie );
HttpCookie fil2Cookie = new HttpCookie("file2Cookie", fil2.ToString());
Response.Cookies.Add( fil2Cookie );
HttpCookie fil3Cookie = new HttpCookie("file3Cookie", fil3.ToString());
Response.Cookies.Add( fil3Cookie );
myConnection.Close();
Response.Redirect("bekraeftelse.aspx");
}
}
}
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
InitializeComponent();
base.OnInit(e);
}
/// <summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
