Avatar billede glenovic16dk Nybegynder
24. august 2006 - 00:01 Der er 39 kommentarer og
1 løsning

xUpload i ASP.

Hej Experter.

Jeg er igang med at sætte noget xUpload op og står og mangler komponentet for at komme igang. Nogen der ved hvor der kan downloadet og om det er gratis?

og samtidig søger jeg en som kan give mig en guide til hvor jeg kommer igang med at lave xUpload.

Giver gerne flere points for et godt svar :)

Mvh
Glenovic16dk
Avatar billede glenovic16dk Nybegynder
24. august 2006 - 00:01 #1
hvordan jeg kommer igang*
Avatar billede kiddoe Nybegynder
24. august 2006 - 00:29 #2
XUpload´s hjemmeside er http://xupload.aspupload.com/index.html
Hvis det er komponentet du søger så er det er ikke gratis
På siden finder du også alle manualer og beskrivelser af objects
Avatar billede kiddoe Nybegynder
24. august 2006 - 00:37 #3
XUpload objektet findes på adressen: http://www.aspscript.dk/xupload/xupload.ocx
Gem filen i mappen c:\windows\system32.
Derefter registreres XUpload.ocx ved at skrive følgende i Run/ kør-diaglogen:
regsvr32 xupload.ocx
Run/ kør-diaglogen findes under Start > Run/Kør.
Avatar billede glenovic16dk Nybegynder
24. august 2006 - 01:32 #4
-> kiddoe

Fik vidst registeret komponetet rigtigt. Lagt i system32 og start -> kør -> regsvr32 xupload.ocx

Jeg ved godt at den manual findes der inde, men jeg er super dårlig til disse manualer.

Så derfor tænker jeg på om der var en som kunne smide lidt hurtig kode som jeg så selv kunne rodde videre med, og evt få lidt hjælp til at komme videre.

Det jeg er kommet frem til indtil videre er denne kode:

<script language="vbscript">
Sub UploadCtl_ServerReply(Reply)
  txtReply.innerText = Reply
End Sub
</script>
<OBJECT WIDTH=500 HEIGHT=200
  ID="UploadCtl"
  CLASSID="CLSID:E87F6C8E-16C0-11D3-BEF7-009027438003"
  CODEBASE="XUpload.ocx">

<param name="server" value="localhost">
<param name="script" value="default.asp">

<param name="ViewServerReply" value="False">

</OBJECT>

<P>
<SPAN ID="txtReply"></SPAN>

- Ved ikke om det er noget i den stil?

Mvh
Glenovic16dk
Avatar billede glenovic16dk Nybegynder
24. august 2006 - 01:34 #5
Efter komponetet er blevet installeret har jeg også fået formen eller hvad den kaldes frem hvor man kan højreklikke og vælge filer osv.

Nu mangler jeg bare lidt kode til hvordan den så uplaoder billederne?
Avatar billede kiddoe Nybegynder
24. august 2006 - 10:46 #6
Avatar billede kiddoe Nybegynder
24. august 2006 - 21:03 #7
Hej igen -

<OBJECT WIDTH=500 HEIGHT=200
    ID="UploadCtl" CLASSID="CLSID:E87F6C8E-16C0-11D3-BEF7-009027438003"
    CODEBASE="../XUpload.ocx#VERSION=3,0,0,0">

<!--- Først din server her skriver du dit domæne--->
<PARAM NAME="Server" VALUE="domaene.dk">

<!--- så mappen og aspscriptet som uploader--->
<PARAM NAME="Script" VALUE="/xupload/demo1_upload.asp">

<!--- vælg hvor mange filer der skal kunne uploades af gangen--->
<PARAM NAME="MaxFileCount" VALUE="30">

<!--- vælg max størrelse på de enkelte filer her er det 1MB --->
<PARAM NAME="MaxFileSize" VALUE="1000000">

<!--- vælg max for det samlede antal MB her er det 5MB --->
<PARAM NAME="MaxTotalSize" VALUE="5000000">

<!-- Hvis ikke server reply TRUE eller FALSE -->
<PARAM NAME="ViewServerReply" VALUE="true">

<!--Redirect til et script der viser din upload status TRUE eller FALSE -->
<PARAM NAME="Redirect" VALUE="True">

<!--- Scriptet der viser dig status -->
<PARAM NAME="RedirectURL" VALUE="http://www.domaene.dk/xupload/showreply.asp">
</OBJECT>

<!-- Microsoft java script der forebygger et eventuelt "Klik-For-Aktivering" problem -->
<script type="text/javascript" src="ie_workaround.js"></script>



I demo1.asp der hvor der står

nCount = Upload.Save("'c:\upload\xupload\")

kan du skrive

nCount = Upload.Save(server.MapPath("\MAPPE\"))

hvor MAPPE skal være navnet på den mappen du uploader til - bemærk at du skal bruge en mappe hvor du har rettigheder til at uploade - hos mig hedder denne mappe UPLOAD

vil du gemme i

http://www.domaene.dk/mappe/mappe/mappe/

skal den være

nCount = Upload.Save(server.MapPath("\MAPPE\MAPPE\MAPPE\"))

eller

PATH = "\mappe\mappe\mappe\"
nCount = Upload.Save(server.MapPath("" & path & ""))
Avatar billede glenovic16dk Nybegynder
24. august 2006 - 23:48 #8
Det ser sku ud til at virke..

Mange tak for hjælpen.

Tænkte på om du også havde lyst til at hjælpe mig med at få den til at oprette dem i databasen :) ?

Evt i et nyt spørgsmål for 100 points?
Avatar billede kiddoe Nybegynder
25. august 2006 - 10:54 #9
- Det var godt.
ja - det kan vi godt finde ud af.
Så skriv lige hvilke felt navne du har brug for.
- Er først tilbage senere idag. Ved fem seks tiden.
Avatar billede glenovic16dk Nybegynder
25. august 2006 - 11:09 #10
Fik det selv til at virke senere i går nat.

Men hvor henne definere jeg hvad den skal kalde filen?
Avatar billede kiddoe Nybegynder
25. august 2006 - 18:03 #11
Det er sådan at når du uploader sender du det hele i som 1 Object
så for at få fat i den enkelte fil skal det gemmes i hukommelsen først og så hendtes derfra til viderbehandling

Jeg har lavet denne her - der giver hver fil et unikt filnavn i form af en kode
Der er flere muligheder så kig lidt på det
Så skal du jo så have Save i Db ind

Gem dette som xxxx.asp og det navn du giver den skal så rettes i demo1.asp
<PARAM NAME="Script" VALUE="/xupload/upload/xxxx.asp">

Her er siden ---

<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<TITLE>XUpload Code Sample</TITLE>
</HEAD>
<BODY>
<%
' Uploader alle filerne til hukomelsen

Set Upload = Server.CreateObject("Persits.Upload")
Upload.CodePage = 65001 ' To handle Unicode characters if any
Count = Upload.SaveToMemory

Response.Write Count & " file(s) uploaded.<P>"

' går igennem alle filerne
For Each File in Upload.Files
'********* billedkode
    '--- START KODEN ---
    randomize
   
    '--- VÆLG LÆNGDE PÅ KODEN - ANTAL TEGN---
    kodelen=10
   
    'Giv koden - filerne - et fornavn feks pic for picture eller img for image
    billedkode="pic"
   
    '--- VÆLG KODNING Fjern ' markeringen fra den linje du vil bruge
    '--- Tal og store og små bogstaver
    'kodechr="abcdefghjkmpqrstuvwxyzABCDEFGHJKMPQRSTUVWXYZ123456789"
    '--- Tal og små bogstaver
    'kodechr="abcdefghjkmpqrstuvwxyz123456789"
    '--- Små bogstaver
    'kodechr="abcdefghjkmpqrstuvwxyz"
    '--- Tal
    kodechr="123456789"
   
    'Laver koden
    chrlen=len(kodechr)
    for n=1 to kodelen
    x=Int((chrlen - 1 + 1) * Rnd + 1)
    billedkode=billedkode & mid(kodechr,x,1)
    next
    '--- SLUT KODEN ---

  ' Skaber et nyt filnavn
 
  ' brug denne hvis du både vil have koden og det oprindelige filnavn
    'FileName = billedkode & File.FileName
 
  ' eller brug denne hvis det kun er koden og filtypen
    FileName = billedkode & File.Ext
 
  ' her skal du skrive den fulde sti fra roden op til din mappe du gemmer i
  ' Min hedder feks
  Host = "c:\xxx\xxxxxx\xxxxxx\aspscript.dk\upload\"
   
  ' Og så gemmer vi
    File.SaveAs Host & FileName
 
Next
%>
<h3>Status! <% = nCount %> filer blev uploadet.</h3>

<TABLE CELLSPACING=0 CELLPADDING=2 BORDER=1>
<TR><TH>Path</TH><TH>Size</TH><TH>Content-Type</TH></TR>
<%For Each File in Upload.Files%>
<TR><TD>
<% =Server.HtmlEncode( File.Path ) %>
</TD>
<TD ALIGN="RIGHT"><% = File.Size %></TD>
<TD><% = File.ContentType %></TD></TR>
<%Next%>
</TABLE>
<P>
<A HREF="demo1.asp">Upload flere filer</A>
</BODY>
</HTML>
Avatar billede glenovic16dk Nybegynder
25. august 2006 - 19:13 #12
hvis jeg gerne vil have navnet på billedet skal ende med at blive request.querystring("festid")_(1 - 2 - 3 - 4 osv.)

Altså et eksempel

festid = 39

39_1.jpg
39_2.jpg

osv?
Avatar billede glenovic16dk Nybegynder
25. august 2006 - 19:34 #13
Altså kan godt få dem til at kalde dem request.querystring("festid")_ men hvordan laver man en funktion der får den til at plusse det bagerste tal med 1 hver gang?

Er det noget med

count = billedenummer + 1 ?
Avatar billede kiddoe Nybegynder
25. august 2006 - 19:38 #14
hvordan og hvor laver du denne fest = 39
Avatar billede kiddoe Nybegynder
25. august 2006 - 19:53 #15
count = 1

og så før NEXT skriver du

count = count + 1
Avatar billede kiddoe Nybegynder
25. august 2006 - 19:58 #16
count = 1
For Each File in Upload.Files

--- kode ---

count = count + 1
next
Avatar billede kiddoe Nybegynder
25. august 2006 - 20:03 #17
men jeg kunne godt tænke mig at vide hvordan du navngiver billederne på serveren
Avatar billede kiddoe Nybegynder
25. august 2006 - 21:06 #18
For at gemme filerne som 39_1.jpg og 39_2.jpg osv

så indsæt dette i dit object

<PARAM NAME="HtmlForm" VALUE="IDForm">

og sæt denne form ind på samme side under dit object

<form name="IDForm">
<input type="text" size="30" name="idnummer" value="Skriv et ID nummer" />
</form>

og brug denne side som upload side

<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<TITLE>Upload med idnummer</TITLE>
</HEAD>
<BODY>
<%
Set Upload = Server.CreateObject("Persits.Upload")
Upload.CodePage = 65001
Count = Upload.SaveToMemory
Response.Write Count & " fil(er) blev uploaded.<br>"
i = 1
id = Upload.Form("idnummer")
For Each File in Upload.Files
  ' Laver det nye filnavn
  FileName =  id & "_" & i & File.Ext
  ' Stien til din mappe
  Host = "c:\xx--xx\domaene.dk\upload\"
  ' Gemmer filen
    File.SaveAs Host & FileName
  i = i + 1
Next
%>
<TABLE CELLSPACING=0 CELLPADDING=2 BORDER=1>
<TR><TH>Sti</TH><TH>Navn</TH><TH>Type<TH>Str.</TH><TH>Content-Type</TH></TR>
<%For Each File in Upload.Files%>
<TR><TD>
<% =Server.HtmlEncode( File.Path ) %>
</TD>
<TD><%=File.FileName%>
<TD><%=File.Ext%></TD>
<TD ALIGN="RIGHT"><% = File.Size %></TD>
<TD><% = File.ContentType %></TD></TR>
<%Next%>
</TABLE>
</BODY>
Avatar billede glenovic16dk Nybegynder
25. august 2006 - 21:13 #19
Der er lige opstået et lille problem.

Har lige flyttet filerne ind i en mappe der hedder "/fester/xupload/"

Når jeg laver et link over til siden inde på min side så den åbner op i en iframe så viser den ikke objectet.

Men hvis jeg kopiere linket og sætter det ind i et nyt browser vindue virker det fint?

Synes ikke det giver nogen mening i mit hoved?

Har du et forslag?
Avatar billede glenovic16dk Nybegynder
25. august 2006 - 21:17 #20
virker nu..

Ændrede bare
CODEBASE="XUpload.ocx#VERSION=3,0,0,0">

til

CODEBASE="/fester/xupload/XUpload.ocx#VERSION=3,0,0,0">
Avatar billede kiddoe Nybegynder
25. august 2006 - 21:21 #21
yep nemlig - :)
Avatar billede glenovic16dk Nybegynder
25. august 2006 - 21:34 #22
Det virker.. Men jeg prøvede lige at 48 billeder i en stor størrelse ( 2272 x 1704 ) Og fik en fejl meddelelse da den var nået ca halvejs med at uploade..

Kan self ikke lige huske fejl koden men har du en ide om hvad det kan skyldes?

Det er ingen MAX på hvor store filerne må være eller hvor mange. Der er alle VALUE sat til 999999999999999?
Avatar billede glenovic16dk Nybegynder
25. august 2006 - 21:49 #23
Har lige fået fejlen igen - Sending information to the server failed with error code 12031. Uploading has been aborted - Siger det dig noget?
Avatar billede kiddoe Nybegynder
25. august 2006 - 21:52 #24
uh ha - det var da også lige nogle store filer - det skyldes script timeout - altså hvor lang tid et script må køre før det afsluttes af serveren - det er noget din webudbyder hersker over - så vidt jeg ved. Løsningen ville være at gøre filerne mindre. - jeg kan uploade ca 300 små gifs ad gangen
Avatar billede kiddoe Nybegynder
25. august 2006 - 21:53 #25
hvor lang tid går der ca før det afslutter
Avatar billede glenovic16dk Nybegynder
25. august 2006 - 21:54 #26
ca 1 minut vil jeg sige?
Avatar billede kiddoe Nybegynder
25. august 2006 - 22:09 #27
prøv igen og vis mig fejlmeddelsen
Avatar billede glenovic16dk Nybegynder
25. august 2006 - 22:11 #28
Sending information to the server failed with error code 12031. Uploading has been aborted - Sådan ser fejl meddelelsen ud..

Ved godt at jeg kan gøre billederne mindre.. Men det er til en fest side hvor folk kan uploade deres fest billeder. Og hvis folk bare går ind og uplaoder kæmpe billeder.

Men sådan må det jo bare være.

Tusind tak for hjælpen.
Avatar billede kiddoe Nybegynder
25. august 2006 - 22:27 #29
det var så lidt - jeg syntets du skulle sætte dine MAX til nogle værdier og så skrive lidt tekst på siden hvor dine brugere kan se hvad de kan og hvad de ikke kan.
Det er jo også muligt nu at alle slags filer kan uploades både programmer og så videre. Nu er det ikke for at hyle dig helt ud af den men vil du ikke have lidt AspSmartUpload at kigge på ??
Avatar billede glenovic16dk Nybegynder
25. august 2006 - 23:58 #30
Har ASP smart upload som jeg bruger til at uploade enkelt filer. Ellers tak :)

Ja skal have sat nogen værdier, satte dem bare til 9999999.. for at teste systemet da jeg troede det var værdien der var skylden i den fejl meddelse.

Kigger på det med at man kun skal kunne uploade billeder på et andet tidspunkt.

Igen mange tak for hjælpen :)
Avatar billede kiddoe Nybegynder
26. august 2006 - 00:52 #31
- du kan jo godt uploade flere filer på en gang med AspSmartUpload

det med filtypen ordner du sådan - sæt ind i dit opject

<PARAM NAME="Extensions" VALUE="bmp,BMP,gif,GIF,jpg,JPG,jpeg,JPEG">
Avatar billede glenovic16dk Nybegynder
26. august 2006 - 17:39 #32
Okey :) Mange tak..

Jeg tænkte på.. Resize Funktion.. Er det noget du har forstand på :)
Avatar billede kiddoe Nybegynder
26. august 2006 - 23:47 #33
prøv om denne her kan gøre det - sættes ind før next

'Åben billede:
Set ASPImage = Server.CreateObject("AspImage.Image")
ASPImage.LoadImage = host & filename

'find størrelse på billede:
ImageHeight = ASPImage.MaxY
ImageWidth = ASPImage.MaxX

size = 200
if ImageHeight > size then
  NewHeight = Cint(ImageHeight*size/ImageWidth)
  NewWidth = size
  ASPImage.ResizeR NewWidth, NewHeight
end if
ASPImage.SaveImage
Avatar billede kiddoe Nybegynder
26. august 2006 - 23:48 #34
hvis det driller så prøv med
ASPImage.Resize
istedet for
ASPImage.ResizeR
Avatar billede glenovic16dk Nybegynder
27. august 2006 - 15:16 #35
Okey.. Men jeg vil gerne have den til at lave 1 speciel højde på billederne?
Avatar billede glenovic16dk Nybegynder
27. august 2006 - 15:29 #36
Har sat din kode ind ( Uden at have ændret noget ) og får denne fejl meddelse.


Microsoft VBScript runtime error '800a01b6'

Object doesn't support this property or method: 'ASPImage.LoadImage'

/fester/xupload/edit.asp, line 76

Linje 76 ser således ud:
ASPImage.LoadImage = host & filename

? :)
Avatar billede kiddoe Nybegynder
28. august 2006 - 00:54 #37
LoadImage understøtter ikke gif billeder men kun jpg,jpeg,bmp og png - så du må huske at rette til på din form side
Denne nye side gemmer først det originale billede, ændrer derefter størrelsen og gemmer det som jpg med det nye filnavn og sletter så det gamle billede

NY UPLOAD SIDE ---

<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<TITLE>XUpload</TITLE>
</HEAD>
<BODY>
<%
Set Upload = Server.CreateObject("Persits.Upload")
Upload.CodePage = 65001
Count = Upload.SaveToMemory

Response.Write Count & " fil(er) uploaded."
i = 1
id = Upload.Form("idnummer")

For Each File in Upload.Files

FileName = File.FileName
Host = "c:\xxxxx\aspscript.dk\upload\"
File.SaveAs Host & FileName
fName = id & "_" & i
 
Set Image = Server.CreateObject("AspImage.Image")
image.LoadImage server.mappath("\upload\" & filename & "")
Image.JPEGQuality = 80

' sæt ny bredde og hojde
NewWidth = 200
NewHeight = 200

Image.ResizeR NewWidth,NewHeight
Image.ImageFormat = 1
Image.FileName = Server.MapPath("\upload\" & fName & ".")
Image.SaveImage
Set Image = Nothing

' ***************  Her skal du så gemme det nye filnavn i DB

fileName2 = fName & ".jpg"

'**************** Slut DB

' Sletter der originale billede
Set fs=Server.CreateObject("Scripting.FileSystemObject")
delFile = host & filename
if fs.FileExists("" & delFile & "") then
fs.DeleteFile("" & delFile & "")
end if
set fs=nothing

i = i + 1
Next
%>
<TABLE CELLSPACING=0 CELLPADDING=2 BORDER=1>
<TR><TH>Sti</TH><TH>Navn</TH><TH>Type<TH>Str.</TH><TH>Content-Type</TH></TR>
<%For Each File in Upload.Files%>
<TR><TD>
<% =Server.HtmlEncode( File.Path ) %>
</TD>
<TD><%=File.FileName%>
<TD><%=File.Ext%></TD>
<TD ALIGN="RIGHT"><% = File.Size %></TD>
<TD><% = File.ContentType %></TD></TR>
<TD></TD></TR>

<%Next%>
</TABLE>
</BODY>
</HTML>
Avatar billede kiddoe Nybegynder
28. august 2006 - 01:00 #38
Du skal også lige huske at rette de steder hvor der står angivet mappen UPLOAD
Det er jo den mappe jeg har brugt
Det er ved

Host
og
Image.LoadImage
og
Image.Filename
Avatar billede glenovic16dk Nybegynder
28. august 2006 - 19:19 #39
Nu har jeg fået den til at uploade billedet.

Men hvordan får jeg den til at stille en bestemt højde og så derefter finde bredden så billedet beholder sine propertioner?
Avatar billede kiddoe Nybegynder
28. august 2006 - 21:32 #40
Nu kan du bestemme højden der hvor der står - hojde = 200 og så retter den selv billedet til -

- Byt --

Set Image = Server.CreateObject("AspImage.Image")
osv til
Set Image = Nothing

- ud med dette --

Set Image = Server.CreateObject("AspImage.Image")
image.LoadImage server.mappath("\upload\" & filename & "")
Image.JPEGQuality = 80
ImageHeight = Image.MaxY
ImageWidth = Image.MaxX
hojde = 200
NewHeight = hojde
NewWidth = Cint(ImageWidth*hojde/ImageHeight)
Image.ResizeR NewWidth, NewHeight
Image.ImageFormat = 1
Image.FileName = Server.MapPath("\upload\" & fName & ".")
Image.SaveImage
Set Image = Nothing
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