Javisst går det... jag kan rekommendera denna komponent: http://www.softartisans.com/
kolla efter SA-fileup
------------------
)|(
(o o)
-oo0-(_)-0oo-----
webeye.nu *hem*
vide@4sale.se
33 svar · 3 656 visningar · startad av Bire
Går det ?
Det måste väl gå på nått sätt att leta fram en bild på hdd och skicka upp den till servern med hjälp av ASP ?
Eller ?
------------------
Explorer in a further region of experience.
<A HREF="http://www.lifestyleshop.nu" TARGET=_blank>www.LifeStyleShop.nu</A>
Javisst går det... jag kan rekommendera denna komponent: http://www.softartisans.com/
kolla efter SA-fileup
------------------
)|(
(o o)
-oo0-(_)-0oo-----
webeye.nu *hem*
vide@4sale.se
Det går även utan komponent om man föredrar det
Detta låter spännade a.. Kan du berätta mer ?
------------------
Explorer in a further region of experience.
<A HREF="http://www.lifestyleshop.nu" TARGET=_blank>www.LifeStyleShop.nu</A>
Jag såg en artikel på ASPToday. Kanske den kan hjälpa dig.
http://www.asptoday.com/articles/20000316.htm
/Fredrik 22993619
Hej, tänkte bara säga att jag själv suttit och laborerat en del med detta script och att det fungerar förvånansvärt bra!
Passar utmärkt när sura webhotell inte vill installera komponenter.
Som du säkert ser på koden så läses filen du ska skicka in binärt och sedan används filesystemobject och createtextfile för att spara filen.
------------------
Fredrik Klarqvist
fredrik.klarqvist@swipnet.se
www.streetwise.se/fredrik/
Om vanligt är jag inte riktigt med på noterna ;)
fredrik: Har du lust att publicera ett kodexempel som funkar utan extra komponenter tror du ?
------------------
Explorer in a further region of experience.
<A HREF="http://www.lifestyleshop.nu" TARGET=_blank>www.LifeStyleShop.nu</A>
Hej igen Bire!
Mitt förra inlägg var ju inte så konstruktivt direkt...
Här kommer en adress till en hemsida med exempel och nerladdningsbar kod: http://www.pstruh.cz/help/ScptUtl/library.htm
Hoppas det kan hjälpa dig!
Tack a..
Jag ska kolla igenom filerna och se om mina hjärnceller är i symbios med varandra under kvällen ;)
Tack tack tack !
------------------
Explorer in a further region of experience.
<A HREF="http://www.lifestyleshop.nu" TARGET=_blank>www.LifeStyleShop.nu</A>
[Redigerat av Bire den 19 jun 2000]
Ok....mycket kod blir det...
Valfritt filnamn:
<FORM METHOD="Post" ENCTYPE="multipart/form-data" ACTION="outputFile.asp">
Fil : <INPUT TYPE="file" NAME="blob"><BR>
<INPUT TYPE="submit" NAME="ok">
</FORM>
outputfile.asp:
<%
' Author Philippe Collignon
' Email PhCollignon@email.com
Response.Expires=0
Response.Buffer = TRUE
Response.Clear
'Response.BinaryWrite(Request.BinaryRead(Request.TotalBytes))
byteCount = Request.TotalBytes
'Response.BinaryWrite(Request.BinaryRead(varByteCount))
RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")
BuildUploadRequest RequestBin
'email = UploadRequest.Item("email").Item("Value")
contentType = UploadRequest.Item("blob").Item("ContentType")
filepathname = UploadRequest.Item("blob").Item("FileName")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
value = UploadRequest.Item("blob").Item("Value")
'Create FileSytemObject Component
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
'Create and Write to a File
pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
' Set MyFile = ScriptObject.CreateTextFile(Left(Server.mappath(Request.ServerVariables("PATH_INFO")),pathEnd)&filename)
Set MyFile = ScriptObject.CreateTextFile(Server.mappath("test/"&filename))
response.write(Server.mappath(filename))
For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next
MyFile.Close
%>
<b>Uploaded file : </b><%=filename%><BR>
<img src="test/<%=filename%>">
<!--#include file="upload.asp"-->
upload.asp:
<%
' Author Philippe Collignon
' Email PhCollignon@email.com
Sub BuildUploadRequest(RequestBin)
'Get the boundary
PosBeg = 1
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
boundaryPos = InstrB(1,RequestBin,boundary)
'Get all data inside the boundaries
Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
'Members variable of objects are put in a dictionary object
Dim UploadControl
Set UploadControl = CreateObject("Scripting.Dictionary")
'Get an object name
Pos = InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition"))
Pos = InstrB(Pos,RequestBin,getByteString("name="))
PosBeg = Pos+6
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filename="))
PosBound = InstrB(PosEnd,RequestBin,boundary)
'Test if object is of file type
If PosFile<>0 AND (PosFile<PosBound) Then
'Get Filename, content-type and content of file
PosBeg = PosFile + 10
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
'Add filename to dictionary object
UploadControl.Add "FileName", FileName
Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
PosBeg = Pos+14
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
'Add content-type to dictionary object
ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
UploadControl.Add "ContentType",ContentType
'Get content of object
PosBeg = PosEnd+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
Else
'Get content of object
Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
PosBeg = Pos+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
End If
'Add content to dictionary object
UploadControl.Add "Value" , Value
'Add dictionary object to main dictionary
UploadRequest.Add name, UploadControl
'Loop to next object
BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
Loop
End Sub
'String to byte string conversion
Function getByteString(StringStr)
For i = 1 to Len(StringStr)
char = Mid(StringStr,i,1)
getByteString = getByteString & chrB(AscB(char))
Next
End Function
'Byte string to string conversion
Function getString(StringBin)
getString =""
For intCount = 1 to LenB(StringBin)
getString = getString & chr(AscB(MidB(StringBin,intCount,1)))
Next
End Function
%>
Det funkar fint hos mig. Det är ju en hel del kod men man använder ju kanske den inte på alla sidor och kanske inte alls för kunder utan snarare för administration av sajter.
Det enda som jag har märkt med det är att filen man laddar upp är "låst" av system så att den inte går att ta bort i typ 30 sekunder efter att man har laddat upp den (den fungerar dock).
Hoppas det funkar!
------------------
Fredrik Klarqvist
fredrik.klarqvist@swipnet.se
www.streetwise.se/fredrik/
Bire´s Oscarstal: ;)
Först vill jag tacka a för det utmärkta tipset om scriptet som man kan ladda upp filer direkt till databasen ! Kanon.. Det ska jag använda sen !
Sen vill jag tacka fredrik för den utsökta lilla kodsnutt som han publicerade här !
Funkade klockrent och löste mina problem helt utan bekymmer !
Supertack till er bägge två !
Sen vill jag även tacka Vide trots att jag inte hade nytta av hans tips den här gången..
Men jag är säker på att han kommer med bättre tips i framtiden ;)
Han har ju hjälpt mig förr !!
Tack Vide för att du bryr dig.
Så här glad är jag nu: -> :e <- !
------------------
Explorer in a further region of experience.
<A HREF="http://www.lifestyleshop.nu" TARGET=_blank>www.LifeStyleShop.nu</A>
Tänk bara på att man använder
ENCTYPE="multipart/form-data
vilket gör det svårt att ha vanliga textrutor att skicka i samma formulär.
Jag har också provat ett liknande script (som jag knackade ihop själv) och den största nackdelen är prestandan, det kan ta väldigt lång tid jämfört med en komponent. Annars är det ett supersätt.
Någon som lyckats ändra i koden så man kan göra "multiple file uploads" dvs flera filer på en gång?
/T
------------------
<*~-. Toonster .-~*>
Tjena Toonster!
Ta en titt på http://www.pstruh.cz/util/upload/upload.asp i exemplet kan man ladda upp två filer
Toonster:
ENCTYPE="multipart/form-data
vilket gör det svårt att ha vanliga textrutor att skicka i samma formulär.
På vilket vis skulle det vara svårt? Kan det bugga sig?
En sak som jag iof inte har kollat som även är en "bugg" i sa-filup också är om man har ett formulär med kryssrutor.
När man då på nästa sida ska kolla om någon har kryssat i rutorna så hämtar man ju input-namnet med request.
MEN om man INTE har kryssat i någon ruta och försöker hämta värdet så blir det fel. (man kan ju inte veta i förväg om någon kryssar i rutan eller inte...det kollar man ju med requesten.)
Eller är det någon som vet någon lösning på detta?
------------------
Fredrik Klarqvist
fredrik.klarqvist@swipnet.se
www.streetwise.se/fredrik/
Kan man inte med javascript skicka med värdena ifrån kryssrutorna i URL:en, och sedan kolla dessa där?
------------------
www.webeye.nu
Vad är problemet egentligen?
jo...det borde nog funka att kolla med ett javascript.
Men i mitt fall skulle det inte funkat ändå för den infon jag får från dessa kryssrutor används för att administrera poster i en databas.
Men om jag skulle haft en redirect imellan kanske det skulle funka.
Det hela går ju att lösa med on errror resume next men det är ju kanske inte alltid att rekommendera.
Problemet är ju att man inte vet om användaren har kryssat i rutan eller inte. Har den gjort det så funkar det fint. Men om den inte har gjort det så blir det fel när jag försöker hämta namnet på kryssrutan med upload.form("kryssrutan").
Men för att kolla om rutan är ikryssad eller inte så måste jag ju först hämta värdet, och det är där problemet ligger...
Tack ändå!
------------------
Fredrik Klarqvist
fredrik.klarqvist@swipnet.se
www.streetwise.se/fredrik/
[Redigerat av fredrik den 20 jun 2000]
Jag menar inte att du skall kolla om man fyllt i eller inte... utan skicka med värdet i URL:en som Querystrings (med javascript).
Då kan du ju hämta värdet med ASP på nästa sida och kolla om du innehåller något... För det är väl där problemet ligger, att du kan kolla detta med Request.Form... eller är jag helt ute och cyklar?
------------------
www.webeye.nu
Med:
ENCTYPE="multipart/form-data
Kan man tex. inte ha en textruta med namn="adress"
Och sedan hämta det värdet med
Request.form("adress")
OBS!->>>Jag har iof. inte provat, men det fungerar inte med SAfileUpload komponenten, utan där får man använda en metod sim finns i uploadobjektet, för att haämta andra formulärvärden.
/T
------------------
<*~-. Toonster .-~*>