webForumDet fria alternativet

filuppladdning med viss storlek

.NET

8 svar · 406 visningar · startad av greggan

Medlem sedan jan. 2004678 inlägg
Frågan#1

Hej

Jag är ute efter att skapa en filuppladning där filen man laddar upp inte får vara större än 250 kb.

Sedan skapar jag även en annan filuppladdning där bilden inte får vara störe än 11*70 pixlar.

Jag har skapat en vanlig filuppladdning redan, men hur gör jag för att kolla detta? :q

Medlem sedan okt. 20005 273 inlägg
#2

Visa den kod du har. Det blir nog lättare för alla då :)

mv icaaq

Medlem sedan jan. 2004678 inlägg
#3

Här kommer lite kod

Dim sfilnamn1 as string
dim sfilnamn2 as array
dim i as integer
dim smeddelande as string
sfilnamn1 = namn
If sfilnamn1 = "" then
smeddelande = "Felaktigt filnamn"
Else
sfilnamn2 = split(sfilnamn1,"\")
i = UBound(sfilnamn2)
sfilnamn1 = sfilnamn2(i)
sfilnamn1 = (server.mappath("foton") & "\" & sfilnamn1)
If file.exists(sfilnamn1) Then
file1.postedfile.saveas (sfilnamn1 & ".gif")
else
file1.postedfile.saveas (sfilnamn1 & ".gif")
end if
end if

namn är då namnet på användaren... så det den här koden gör är att den sparar fotot som det är i mappen foton som användarnamnet.gif...

koden har jag i stortsätt kopierat från en bok och ändrat om i den.. jag är inte helt nöjd.. men det viktigaste är att jag kan lägga in lite begränsningar för storlek osv...

Medlem sedan sep. 20011 914 inlägg
#4

Lite bild validering.

//C#
private void btAddPhoto_Click(object sender, EventArgs e)
{
   //return gör så att funktionen avbryts om ett villkor inte uppfyllts

   //Om textboxen till filen som skall laddas upp är tom
   if(tbPhoto.Value.Length == 0 || tbPhoto.PostedFile == null)
      return;

   //Det finns en uppladdad fil så vi sätter in den i ett HttpPostedFile objekt
   HttpPostedFile pf = tbPhoto.PostedFile;

   //Tar fram filändelsen på filen
   string extension = Path.GetExtension(pf.FileName).ToLower();
   
   //Kollar om filändelsen är av de typer vi önskar
   switch(extension)
   {
      case ".gif" : break;
      case ".jpg" : break;
      case ".png" : break;
      default: return;
   }
     
   //Kollar storleken på filen, i detta fallet får den inte vara över 20000 byte
   if(pf.ContentLength > 20000)
      return;

   //Lägger in den uppladdade filen i ett image objekt
   System.Drawing.Image i = System.Drawing.Image.FromStream(pf.InputStream);
   
   //Kollar så att image objektet inte är större än 100*100px
   if(i.Width > 100 || i.Height > 100)
      return;
   
   //Släpper image objektet
   i.Dispose();
}
'VB.NET
Private Sub btAddPhoto_Click(sender As Object, e As EventArgs)
   'return gör så att funktionen avbryts om ett villkor inte uppfyllts

   'Om textboxen till filen som skall laddas upp är tom
   If tbPhoto.Value.Length = 0 Or tbPhoto.PostedFile Is Nothing Then
      Return
   End If 

   'Det finns en uppladdad fil så vi sätter in den i ett HttpPostedFile objekt
   Dim pf As HttpPostedFile = tbPhoto.PostedFile
   
   'Tar fram filändelsen på filen
   Dim extension As String = Path.GetExtension(pf.FileName).ToLower()
   
   'Kollar om filändelsen är av de typer vi önskar
   Select Case extension
      Case ".gif"
      Case ".jpg"
      Case ".png"
      Case Else
            Return
   End Select
   
   'Kollar storleken på filen, i detta fallet får den inte vara över 20000 byte
   If pf.ContentLength > 20000 Then
      Return
   End If 

   'Lägger in den uppladdade filen i ett image objekt
   Dim i As System.Drawing.Image = System.Drawing.Image.FromStream(pf.InputStream)
   
   'Kollar så att image objektet inte är större än 100*100px
   If i.Width > 100 Or i.Height > 100 Then
      Return
   End If 

   'Släpper image objektet
   i.Dispose()
End Sub 'btAddPhoto_Click
Medlem sedan jan. 2004678 inlägg
#5

oj oj oj.. du har inte lust att förklara lite... hänger inte riktigt med i det där... lite smått avancerat ser det ut som... =/

Medlem sedan sep. 20011 914 inlägg
#6

La till lite kommentarer för förtydligande.

Medlem sedan okt. 20005 273 inlägg
#7

greggan: Dino´s kod är skriven i C#.

mv icaaq

Medlem sedan sep. 20011 914 inlägg
#8

La till vb.net version

Medlem sedan jan. 2004678 inlägg
#9

tack.. vänligt att du tog dig tid att skriva i vb och lägga till kommentarer... har dock några funderingar...

tb.photo som du kallar den i din kod antar jag är en textbox.. fungerar det lika bra med en input file.. så man kan bläddra?

måste jag ha några extra namnområden öppna?

jag vill att filen ska ges ett specifikt namn, vart gör jag det?

vart skriver jag i vilken path filen ska hamna?

och slutligen, vad händer om en fil med namnet redan existerar?

:)

264 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)