vilken trad ska vi svara i kb00obfr? samma svar har, For Each Loop? Det ska fungera...
Uploadscript utan komponent
307 svar · 16 552 visningar · startad av OveRRidE · sida 6 av 16
Crisse har skrivit i januari att han hade följande fel. Jag får också det felet men förstod inte hur han hade löst det. Jag har jämfört koderna och ser inte vad som kan vara fel.
Är det någon som förstår vad felet innebär och kan förklara så jag vet var jag ska leta efter felet?
Microsoft VBScript runtime error '800a0005'
Invalid procedure call or argument: 'MidB'
/forum/upload.asp, line 6
line 6 ar;
boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
//Johanna
Om jag inte minns helt fel så brukar felet grunda sig i att ett textfält som anropas inte finns..
Kolla över så du stavat rätt. :)
Japp, tror nog att det kan vara ett problem... :)
Hur kör man en Redirect i outputfile.asp?
Den ger mig bara det där felmeddelandet andra fått MidB rad 6...
Crisse!
Sätter in delar av min kod här. Har inte gjort just några ändringar i koden mer än att jag lagt till det som kollar filformat och storlek. Ska lägga till sen att den sparar filerna på ett visst ställe men först hade jag tänkt att det skulle fungera med min övriga kod.
Jag tror också det kan ha något att göra med att jag inte får in de strängar jag behöver.
Jag har ett formulär med diverse saker som ska matas in. Formuläret har en form-tag som redirectar till samma sida igen men den går in i en annan if som sköter inläsningen av formuläret. I samma if gör jag också en redirect till outputfile.asp. Efter att inläsningarna gjort. Det känns som att det kan vara det som är problemet. Får den verkligen de värden den behöver då?
I mitt formulär har jag bara bläddra knappen och ingen ladda upp knapp. Den vill jag slippa.
Kan jag lösa det på något annat sätt tror ni?! Kan jag skicka med några inlästa värden till outputfile.asp?
Så här ser koden för formuläret ut:
<input type="file" name="blob">
Så här läser jag in i formuläret. Hela sökvägen till bilden som ska laddas upp:
bild = Request.Form("blob")
outputfile.asp
Response.Expires=0
Response.Buffer = TRUE
Response.Clear
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
dim UploadRequest
set UploadRequest = CreateObject("Scripting.Dictionary")
Response.Write(requestbin)
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")
'Kollar om det är jpg eller gif fil om det stämmer, gå vidare
if contentType="image/pjpeg" or contentType="image/gif" then
'Kollar nu med strMaxSize om den är större än 50kb, om inte, gå vidare
if byteCount > 50000 then
response.write "Bilden är för stor, "& byteCount &" bytes. Den får max vara 50000 bytes (50kb)."
else
'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(filename))
'Set MyFile = ScriptObject.CreateTextFile(Server.mappath("/bilder/uppladdat/" & filename)) 'bestämmer var bilden ska hamna
'Set MyFile = ScriptObject.CreateTextFile("c:\mina dokument\"&filename)'bestämmer var bilden ska hamna
for i = 1 to lenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
next
MyFile.Close
'dessa rader görs när filen laddats upp
response.write "<b>Filens sökväg:</b> " & Server.mappath(filename) & "<br>"
response.write "<b>Filnamn:</b> " & filename & "<br><br>"
response.write "<img src=""" & filename & """>"
end if
'Från If-satsen ovan så kommer här om det INTE är jpg eller gif fil
else
response.write "Bilden måste vara av formatet .gif eller jpg."
end if
I upload.asp har jag inte gjort några ändringar alls.
//Johanna
Bidde visst lite fel i min kod när jag skulle ta bort kommentarerna.
Tog bort raden:
BuildUploadRequest RequestBin 'måste ju finnas med
Ta istället bort:
Response.Write(requestbin)
Alltså o koden jag satt in på forumet. I min fil här så har jag det som jag nu beskrev.
//Johanna
Nu har jag lagt in all min inläsning av formuläret i outputfile.asp.
Hittar inga stavfel. Men nu börjar tålamodet tryta *ler* så då är man väl blind.
Jag får i alla fall samma fel igen.
En fråga till:
Vad gör de här raderna:
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")
contentype och filename som den tar reda på. Måste jag ha de attributen i min tag för blob?
//Johanna
Nu har jag äntligen fått det att funka!
Det var en rad i formtagen som jag missat...
enctype="multipart/form-data"
Den verkar ha något med contentType och filename som jag frågade om ovan.
Tack i alla fall!
//Johanna
hur gör jag om jag har två bilder jag vill ladda upp?
har nämnligen en thumbnail och en vanlig...
+går det att kolla height / width me asp lr nå annat sätt så man kan föra in i db?
Kan du inte helt enkelt låta thumbnailen ha ett annat namn, typ om den riktiga bilden heter:
bild.jpg så heter thumbnailen tn_bild.jpg?
Om det är så att du "alltid" har en thumbnail till en bild så behöver du ju inte lägga in det namnet i db i så fall.
Jovisst kan jag ha det men behöver fortfarande veta om man kan ta reda på width / height och hur man gör me detta script för att ladda upp två filer dvs. blob & blob2 från samma formulär
Ah, jag uppfattade det som om det var på så sätt du skulle skilja dem åt. :r
Nu är jag jobbig igen, men varför ska du ha reda på höjd o bredd?
Det här kanske kan vara något: http://www.webforum.nu/showthread.php?s=&threadid=39459&highlight=bild+storlek
eller:
Här kanske du hittar en del: http://www.webforum.nu/search.php?s=&action=showresults&searchid=272514&sortby=lastpost&sortorder=descending
Lättast är ju att använda javascript när du sen använder bilden, tex om du ska ha en popup eller liknande.
Men du vet inte hur man laddar upp två filer i samma formulär?
Nån som vet hur man sparar två stycken filer från samma formulär? Dvs. typ blob1 o blob2... Måste ladda upp två st! Snälla?
Snälla? Panik nu, måste lägga upp en sida ida o behöver kunna ladda upp dubbla filer... Sorry for span
du kan väl köra en for each loop??? för varje förmulär så gör du uppladdningen :)
Jag e helt kör på sånt där... o hajjar typ inget av uploadscriptet alls så...
Snälla visa =b
men om du kör typ
For Each forumlärnamn
'uploaden
Next
jag kan inte så bra heller på det där med for each... men någon kan säkert :D
Verkar typ som om jag laddar upp filer som e större än 30kb lr nåt sånt så slutar den ladda upp... Så i galleriet visas halva bilder... Har typ inte ändrat nåt alls.
<%
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
mapp = UploadRequest.Item("mapp").Item("Value")
width = UploadRequest.Item("width").Item("Value")
height = UploadRequest.Item("height").Item("Value")
datum = UploadRequest.Item("datum").Item("Value")
beskrivning = UploadRequest.Item("beskrivning").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(Session("ID") & "/" & filename))
For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next
Set objConnect = Server.CreateObject("ADODB.Connection")
objConnect.Open "DSN=alkisarna"
sql = "insert into bilder (anvID, mappID, fil, width, height, datum, beskrivning) values (" & Session("ID") & ", " & mapp & ", '" & filename & "', " & width & ", " & height & ", #" & datum & "#, '" & beskrivning & "')"
objConnect.Execute(sql),,128
objConnect.Close : Set objConnect = Nothing
MyFile.Close
response.write "<b>Filens sökväg:</b> " & Server.mappath(Session("ID") & "/" & filename) & "<br>"
response.write "<b>Filnamn:</b> " & filename & "<br><br>"
response.write "<img name=""bild"" src=""" & Session("ID") & "/" & filename & """>"
%>
<!--#include file="upload.asp"-->
Nåt fel lr? Riktigt irriterande med halva bilder om vi säger som så...