Avatar billede mjall0w Nybegynder
17. april 2003 - 10:23 Der er 11 kommentarer og
1 løsning

ASPImage Resize, plus tekst!

Hey!
Jeg har skal have lavet en side hvor man kan uploade et billede også skal der komme en tekst på som man angiver i formen.. Billedet skal også resize's, mit script ser sådan her ud:
<%
if Session("Access_Level") = "Administrator" Then
%>
<%
'Variables
Dim mySmartUpload, file
       
'Object creation
Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
On Error Resume Next

'Upload
mySmartUpload.Upload

'Only if the file exist
If not mySmartUpload.files.item(1).IsMissing Then
       
    'sample with a physical path
    mySmartUpload.files.item(1).SaveAs("../images/" & mySmartUpload.files.item(1).FileName)
Const adOpenKeyset = 1
    Const adLockOptimistic = 3
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../em.mdb") & ";UID=admin;PWD=;"

    'Tilføjer brugeren til databasen
    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "Select * From news"
    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
   
    'Display the properties of the current file
response.write "../default.asp?page=forside"




 


    'Tilføjer brugeren til databasen og sender ham/hende til login siden
    rs.AddNew
    rs("navn") = mySmartUpload.Form("navn")
    rs("posted") = Session("Gamernick")
    rs("news") = mySmartUpload.Form("news")
    rs("info") = mySmartUpload.Form("info")
    rs("kategori") = mySmartUpload.Form("kategori")
    rs("billed") = mySmartUpload.files.item(1).FileName
    rs("Dato") = Now
    rs.update


    rs.Close
    Set rs = Nothing
    Conn.Close
    Set Conn = Nothing

Else
    Response.Write("Du har ikke valgt et billede!")
End If

Err.Clear

  Set mySmartUpload = Nothing

%>
<%
else response.redirect "../default.asp"
end if
%>

Håber i kan hjælpe mig ;)

/Mjall0w-
Avatar billede KingMedia Novice
17. april 2003 - 10:35 #1
Det smarteste er, at når du uploader med ASPSmartUpload, så at uploade til en temp file, som du så kalder via ASPImage.... 


Med hensyn til resize, kan du bruge denne Sub... 

Sub ResizeX (intXSize)
  Dim intYSize
  intYSize = (intXSize / Image.MaxX) * Image.MaxY
  Image.ResizeR intXSize, intYSize
end sub

den kalder du så med "call ResizeX (300)" f.eks...  hvor tallet er antal pixels i bredden...

Med hensynt til tetkst på billedet, så kig på det her link ...

http://www.wannafind.dk/support/kompletdokumentation/aspimage.htm

med det skulle du kunne lave det ønskede :o)

/Mads
Avatar billede mjall0w Nybegynder
17. april 2003 - 10:36 #2
Øhhm, det med at uploade til en temp file, også bagefter kalde asp image kan du ikke prøve at beskrive det lidt nærmere ? Er ikke så meget inde i det upload her!

/Mjall0w-
Avatar billede KingMedia Novice
17. april 2003 - 10:54 #3
F.eks laver du en side der hedder Form.asp
den bruger du udelukkende til at vælge billedet på harddisken.. intet andet..
i den har du følgende kode..

Form.asp
------------------------
<form method="post" action="UploadImage.asp" ENCTYPE="multipart/form-data">
<table align="center" width="70%">
<tr>
<td>Fil til uploadning: </td>
</tr>
<tr>
<td>
<input type="file" name="FILE1"
onchange="document.all.preview.src='file:///'+this.value;document.all.preview.style.visibility='visible';
;document.all.send.disabled=false;document.all.send.style.visibility='visible'">
</td>
<td>&nbsp;</td>
<td>
<input type="submit" value="Upload Billede" name="send" style="visibility:hidden;">
</td>
</tr>
</table>
</form>
<table align="center" width="100%">
<tr>
<td align="center">
<img id="preview" style="visibility:hidden;">
</td>
</tr>
</table>
------------------------

så skal du så bruge UploadImage.asp, som formen henviser til.. .
det øverste bruger vi til at gemme billedet med ASPSmartUpload...  formen bruges til teksten...



UploadImage.asp
------------------------

<%

Server.ScriptTimeout = 100000

Set Upload = Server.CreateObject("Persits.Upload")
Upload.Save

' her gemmer den så billedet på serveren, i en temp fil.. 
For Each File in Upload.Files
  File.SaveAs "d:\web\kingmedia.dk\mdb\temp.jpg"
Next

%>

<form action="SaveImage.asp" method="post">
<table align="center" width="80%">
<tr>
<td>
Vælg tekst på billedet.
</td>
</tr>

<tr>
<td>
<input type="text" name="billedtekst">
</td>
</tr>
<tr>
<td>
<input type="submit" Value="Bekræft">
</td>
</tr>
</table>
</form>
----------------------------------

så har vi så den lidt mere komplekse fil SaveImage.asp
den resizer billedet, og sætter tekst ind i øverste venstre hjørne..

SaveImage.asp
---------------------------------

<%
' opbygger en variabel med tekst fra sidste form..
strText = Request.Form("billedtekst")

' sub funktion til at resize billedet med..
Sub ResizeX (intXSize)
  Dim intYSize
  intYSize = (intXSize / Image.MaxX) * Image.MaxY
  Image.ResizeR intXSize, intYSize
end sub

' her laver vi en variabel, så filnavne bliver unikke.. i dette tilfælde en masse tal
NewName = right("0" & year(now), 2) & right("0" & month(now), 2) & right("0" & day(now), 2)
NewName = NewName & hour(time) & minute(time) & second(time)

' her henter vi ASPImage komponenten
Set Image = Server.CreateObject("AspImage.Image")

' her henter vi det temp billede vi gemte..
Image.LoadImage ("d:\web\kingmedia.dk\mdb\temp.jpg")
Image.ImageFormat = 1

' Her resizer vi. i dette tilfælde 300px i bredden (den klarer selv højden ;o)
call ResizeX (300)

' her sætter vi font parametrene
  Image.FontColor = vbBlack
  Image.Italic = True
  Image.Bold = True
  Image.FontName = "Arial"
  Image.FontSize = 12

' her indsætter vi tekst..
Image.TextOut strMessage, 0, 0, false

' her gemmer vi filen, og bruger den variabel til unikke filnavne
Image.FileName = "d:\web\kingmedia.dk\images\" & NewName & ".JPG"
if Image.SaveImage then
    Response.Write "<img src=/images/" & NewName & ".jpg>"
    Response.Write "<br>Filen er gemt som <b>http://www.kingmedia.dk/images/" & NewName & ".jpg</b>"
  else
Image.Error for details
    Response.Write "<h2>Welcome to</h2>" & Image.Error
  end if


set image = nothing



%>


---------------------------


så har du lidt at prøve med ;o)

/Mads
Avatar billede KingMedia Novice
17. april 2003 - 10:56 #4
Hov.. lige en fejl sneg sig ind....


' her indsætter vi tekst..
Image.TextOut strMessage, 0, 0, false


skal ændres til

' her indsætter vi tekst..
Image.TextOut strText, 0, 0, false



/mads
Avatar billede mjall0w Nybegynder
17. april 2003 - 11:14 #5
<%

Server.ScriptTimeout = 100000

Set Upload = Server.CreateObject("Persits.Upload")
Upload.Save

' her gemmer den så billedet på serveren, i en temp fil.. 
For Each File in Upload.Files
  File.SaveAs "d:\web\kingmedia.dk\mdb\temp.jpg"
Next

%>
Vil det ikke være smartest hvis man gemte det på nettet når det er et online magazine det skal brues til ? ?;)

/Mjall0w-
Avatar billede mjall0w Nybegynder
17. april 2003 - 11:27 #6
Microsoft VBScript compilation error '800a03ea'

Syntax error

/news/upload.asp, line 60

Image.Error for details

<-- Kan jeg ikke lige gennemskue!!
Det andet har jeg fundet ud af, det var bare mig der var lidt for hurtig med at spørge

/Mjall0w-
Avatar billede KingMedia Novice
17. april 2003 - 11:46 #7
Hmmm.... 

Kig koden igennem ... kig evt i linket jeg sendte i første svar.. det er hele dokumentationen for ASPImage ;o)

/mads
Avatar billede KingMedia Novice
17. april 2003 - 11:47 #8
Nu vil jeg nemlig tøffe på arbejde :-s ...


Men jeg kommer igen senere og tjekker.. engang i aften :o) ....

/Mads
Avatar billede mjall0w Nybegynder
17. april 2003 - 12:27 #9
Okay, Good Luck på work ;)

/Mjall0w-
Avatar billede mjall0w Nybegynder
20. april 2003 - 20:20 #10
Havde du et svar på det problem der ??

/Mjall0w-
Avatar billede mjall0w Nybegynder
21. april 2003 - 10:04 #11
Jamen Jamen Jamen..
Jeg hoster mit domaine og webhotel hos cliche, og self kører de ikke med ASPImage :(

/Mjall0w-
Avatar billede mjall0w Nybegynder
08. november 2003 - 10:00 #12
Lukker..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester