Avatar billede bobbedude Nybegynder
10. juni 2003 - 10:21 Der er 34 kommentarer og
1 løsning

Type mismatch: string:

Jeg er ved at lave et script med aspUpload men det vil sgu ikke rigtig jeg får konstant fejlen:

Type mismatch: '[string: ""]'


Set Upload = Server.CreateObject("Persits.Upload")
Upload.ProgressID = Request.QueryString("PID")

Set Str_FilNavn = Upload.form("FilNavn")
Set Str_Beskrivelse = Upload.form("Beskrivelse")
Set Str_DirG = Upload.form("DirG")

IF Str_DirG = 1 then
    DirX = "Dir1"
ElseIF Str_DirG = 2 then
    DirX = "Dir2"
ElseIF Str_DirG = 3 then
    DirX = "Dir3"
ElseIF Str_DirG = 4 then
    DirX = "Dir4"
End If

Upload.Save("e:\kunder\www.rc-media.dk\Upload-II\Files"&DirX&" ")


linien der er fejl i er

IF Str_DirG = 1 then
Avatar billede jonbdk Nybegynder
10. juni 2003 - 10:23 #1
Du har angive str_dirg til at være en streng, så IF Str_DirG = "1" then
burde klare det
Avatar billede bobbedude Nybegynder
10. juni 2003 - 10:24 #2
Arrg

Hvordan får jeg lige lavet en tal variabel så ??
Avatar billede jonbdk Nybegynder
10. juni 2003 - 10:27 #3
uhhhh er ikke helt sikker, men hedder funktionen ikke CInt(str_dirG)
Avatar billede jonbdk Nybegynder
10. juni 2003 - 10:28 #4
int_dirG = IF Str_DirG = 1 then
Avatar billede jonbdk Nybegynder
10. juni 2003 - 10:28 #5
Det gik lidt stærkt således mente jeg:
int_dirG = CInt(Str_DirG)
Avatar billede bobbedude Nybegynder
10. juni 2003 - 10:31 #6
Ok nu har jeg :

Set Int_DirG = Upload.form("DirG")

IF Str_DirG = 1 then
    Set DirX = "Dir1"
ElseIF DirG = 2 then
    Set DirX = "Dir2"
ElseIF DirG = 3 then
    Set DirX = "Dir3"
ElseIF DirG = 4 then
    Set DirX = "Dir4"
End If

Upload.Save "E:\projekter\projekter\test\Upload-II\Files\"&DirX

men af en eller anden grund er variablen DirX = ingenting ??
Avatar billede jonbdk Nybegynder
10. juni 2003 - 10:32 #7
Du konverterer da stadig ikke til tal - har du ikke bare kaldt variablen noget andet?
Avatar billede bobbedude Nybegynder
10. juni 2003 - 10:33 #8
rettelse

IF DirG = 1 then
    DirX = "Dir1"
ElseIF DirG = 2 then
    DirX = "Dir2"
ElseIF DirG = 3 then
    DirX = "Dir3"
ElseIF DirG = 4 then
    DirX = "Dir4"
End If
Avatar billede bobbedude Nybegynder
10. juni 2003 - 10:33 #9
arrrg 2 sekunder
Avatar billede jonbdk Nybegynder
10. juni 2003 - 10:33 #10
Set Int_DirG = Upload.form("DirG")

IF CInt(Str_DirG) = 1 then
    Set DirX = "Dir1"
ElseIF CInt(Str_DirG) = 2 then
    Set DirX = "Dir2"
ElseIF CInt(Str_DirG) = 3 then
    Set DirX = "Dir3"
ElseIF CInt(Str_DirG) = 4 then
    Set DirX = "Dir4"
End If

F.eks sådan hvis du vil skrive det mange gange :-)
Avatar billede bobbedude Nybegynder
10. juni 2003 - 10:35 #11
Set Int_DirG = Upload.form("DirG")

IF Int_DirG = 1 then
    DirX = "Dir1"
ElseIF Int_DirG = 2 then
    DirX = "Dir2"
ElseIF Int_DirG = 3 then
    DirX = "Dir3"
ElseIF Int_DirG = 4 then
    DirX = "Dir4"
End If


Skulle dette ikke virker ??
Jeg får stadig fejlen Type mismatch: '[string: ""]'
Avatar billede jonbdk Nybegynder
10. juni 2003 - 10:38 #12
Set str_DirG = Upload.form("DirG")

set Int_DirG = CInt(str_DirG )

IF Int_DirG = 1 then
    DirX = "Dir1"
ElseIF Int_DirG = 2 then
    DirX = "Dir2"
ElseIF Int_DirG = 3 then
    DirX = "Dir3"
ElseIF Int_DirG = 4 then
    DirX = "Dir4"
End If

Jeg har tilføjet EN linje
Avatar billede jonbdk Nybegynder
10. juni 2003 - 10:38 #13
og ændre det første variabelnavn
Avatar billede bobbedude Nybegynder
10. juni 2003 - 10:40 #14
Set str_DirG = Upload.form("DirG")

set Int_DirG = CInt(str_DirG )

IF Int_DirG = 1 then
    DirX = "Dir1"
ElseIF Int_DirG = 2 then
    DirX = "Dir2"
ElseIF Int_DirG = 3 then
    DirX = "Dir3"
ElseIF Int_DirG = 4 then
    DirX = "Dir4"
End If

Laver Type mismatch: '[string: ""]' i linien
set Int_DirG = CInt(str_DirG )
Avatar billede jonbdk Nybegynder
10. juni 2003 - 10:42 #15
Prøver lige selv - 2 sek
Avatar billede bobbedude Nybegynder
10. juni 2003 - 10:44 #16
Tror det er Persits.Upload der laver et eller andet om
Avatar billede bobbedude Nybegynder
10. juni 2003 - 10:48 #17
IMPORTANT: Neither the Files nor Form collections are populated until the Save method is called. It is therefore incorrect to refer to either of these collections before calling Upload.Save.
Avatar billede bobbedude Nybegynder
10. juni 2003 - 10:49 #18
er det det mon ??
Avatar billede jonbdk Nybegynder
10. juni 2003 - 10:51 #19
Sådan her får jeg den til at virker. Der er så ingen fejltjek på, at du rent faktisk skriver et tal i formfeltet (ellers får du fejlen type mismatch)
Hvis det stadig ikke virker, så prøve at udskriv str_dirG sæt evt stjerner for rundt om, så du kan se, at den er ikke er = *  1* eller *1  * eller en eller anden afvigelse heraf (indbyg evt. et tjek af, om deen er numerisk (mener funktionenen hedder IsNumeric)
dim str_DirG
dim Int_DirG
str_DirG = Upload.form("DirG")

Int_DirG = CInt(str_DirG )


IF Int_DirG = 1 then
    DirX = "Dir1"
ElseIF Int_DirG = 2 then
    DirX = "Dir2"
ElseIF Int_DirG = 3 then
    DirX = "Dir3"
ElseIF Int_DirG = 4 then
    DirX = "Dir4"
End If
Avatar billede bobbedude Nybegynder
10. juni 2003 - 10:54 #20
oki men jeg har altså stadig samme fejl

Type mismatch: '[string: ""]' i linien

Int_DirG = CInt(str_DirG )
Avatar billede jonbdk Nybegynder
10. juni 2003 - 10:58 #21
hmmmm - hvis du er interesseret i at emaile mig siden (sourcen) skal jeg gerne prøve at kigge mail@jon-b.dk
Avatar billede bobbedude Nybegynder
10. juni 2003 - 10:59 #22
der kommer ingen variabel med over ?????????
Avatar billede jonbdk Nybegynder
10. juni 2003 - 11:00 #23
Så er det nok ikke så underligt at den ikke kan konvertere en tom streng til et tal :-)
Avatar billede bobbedude Nybegynder
10. juni 2003 - 11:06 #24
har lige sendt en mail til dig
Avatar billede bobbedude Nybegynder
10. juni 2003 - 11:06 #25
hehe nops - men hvorfor kommer der ikke noget med over ???
Avatar billede jonbdk Nybegynder
10. juni 2003 - 11:11 #26
Jeg kan godt nok ikke påstå jeg har fået noget endnu...
Kommer de andre variabler godt nok med over?
Avatar billede bobbedude Nybegynder
10. juni 2003 - 11:15 #27
stykke tid siden ???
Avatar billede jonbdk Nybegynder
10. juni 2003 - 11:18 #28
er kommet nu - kigger
Avatar billede jonbdk Nybegynder
10. juni 2003 - 11:31 #29
Det var straks værre - har fundet fejlen (kan godt huske jeg engang bøvlede længe med det også) Jeg kan desværre ikke umiddelbart løse det...
Dit tal over lever ikke turen i din form metode. Det er "ENCTYPE="multipart/form-data"" der gør det - hvis du fjerner det, får du tallet med over, men så kommer din fil pludselig ikke med over
Avatar billede jonbdk Nybegynder
10. juni 2003 - 11:32 #30
Man kunne måske forestille sig noget onclick så når man submittede hed den værdien med op i urlen ?tal=MyForm.sender eller noget i den stil - det er mit bedste bud
Avatar billede jonbdk Nybegynder
10. juni 2003 - 11:32 #31
hed = hev
Avatar billede bobbedude Nybegynder
10. juni 2003 - 13:55 #32
Har fået det til at virke


<%
Set Upload = Server.CreateObject("Persits.Upload")

Upload.SetMaxSize 100000, True

Upload.ProgressID = Request.QueryString("PID")

Set File1 = Upload.Files("thumbnail")
Set File2 = Upload.Files("filen")
Set Str_FilNavn = Upload.form("FilNavn")
Set Str_Beskrivelse = Upload.form("Beskrivelse")
Set DirG = Upload.form("DirG")

On Error Resume Next

Upload.Save "E:\projekter\projekter\test\Upload-II\Files\temp"

' 8 is the number of "File too large" exception
If Err.Number = 8 Then
  Response.Write "Din fil er for stor prøv igen"
  ErrorPing = 1
Else
  If Err <> 0 Then
      Response.Write "Der opstod en fejl: " & Err.Description
  Else
      'Success
  End If
End If

IF DirG = 1 then
    DirX = "Dir1"
ElseIF DirG = 2 then
    DirX = "Dir2"
ElseIF DirG = 3 then
    DirX = "Dir3"
ElseIF DirG = 4 then
    DirX = "Dir4"
End If

'Den skal så gemme i forskellig dir ud fra valget på den første side


    If Not File1 Is Nothing Then
       
        If File1.ImageType <> "UNKNOWN" then
       
        ' Copy file 1
        File1.Copy "E:\projekter\projekter\test\Upload-II\Files\" & Dirx &"\"& File1.Filename
        ' Delete from temp folder
        File1.Delete
       
        else

        File1.Delete

        end if
   
    End if
       
    If File2.Ext = "exe" OR File2.Ext = "rar" OR File2.Ext = "cab" OR File2.Ext = "zip" then       
       
                If ErrorPing = 1 then
                File2.Delete
                End if
   
        ' Copy file 2
        File2.Copy "E:\projekter\projekter\test\Upload-II\Files\" & Dirx &"\"& File2.Filename
        ' Delete from temp folder
        File2.Delete
   
    else
   
        File2.Delete
       
        'Sletter File1
        Set fso = CreateObject("Scripting.FileSystemObject")
        filen = "E:\projekter\projekter\test\Upload-II\Files\"&DirX&"\" & File1.Filename
        Set fileObject = fso.GetFile (filen)
   
        fileObject.Delete
   
        Set fileObject = Nothing
        Set fso = Nothing
   
    end if

%>
Avatar billede bobbedude Nybegynder
10. juni 2003 - 13:56 #33
jonbdk >> Smid lige et svar
Avatar billede jonbdk Nybegynder
10. juni 2003 - 14:21 #34
fik du til at virker?
Ellers skal du i hvert fald ikke give fuld point!
Avatar billede bobbedude Nybegynder
10. juni 2003 - 15:09 #35
jonbdk >> Jo du skal have de point for du hjalp mig igang Basta :ø)

Problemet var at man ikke kan kalde på for elementer før man har savet filen.
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