Avatar billede jsc Nybegynder
24. april 2008 - 19:47 Der er 18 kommentarer og
1 løsning

Upload af fil i valgt directory

Hej Eksperter...

Hvorfor kan jeg ikke dette?

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

Response.Expires = 0
Set fbase = Server.CreateObject("Chili.Upload.1")
dim strSentence, arrWords, strOneWord, element
strSentence = fbase.SourceFileName
strSentence = Trim(strSentence)
arrWords = Split(strSentence, "\", -1, 1)
element = UBound(arrWords)                      '<<<<<< line 8

fbase2.SizeLimit = 1024 * 1024

fbase.SaveToFile(request.form("dir") & arrWords(element))

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

det virker fint, hvis jeg ikke har et request med... - jeg får fejlen:

Error Type:
Request object, ASP 0208 (0x80004005)
Cannot use the generic Request collection after calling BinaryRead.
dokumenter-upload-fil.asp, line 8


Hvad kan man gøre ved det?
/jsc
Avatar billede w13 Novice
24. april 2008 - 19:48 #1
Ja, af en eller anden grund kan du ikke bruge den, når du har brugt "BinaryRead". Men kan du ikke bare lægge den over i en string i starten af koden? Det burde da gøre tricket.
Avatar billede jsc Nybegynder
24. april 2008 - 19:53 #2
Ja, det troede jeg også jeg kunne... men så opfattes den ikke og filen bliver uploadet i "root" uanset hvad man vælger :(

/jsc
Avatar billede w13 Novice
24. april 2008 - 20:32 #3
Så du kan ikke gøre sådan her:

strDir=request.form("dir")
Response.Expires = 0
Set fbase = Server.CreateObject("Chili.Upload.1")
dim strSentence, arrWords, strOneWord, element
strSentence = fbase.SourceFileName
strSentence = Trim(strSentence)
arrWords = Split(strSentence, "\", -1, 1)
element = UBound(arrWords)                      '<<<<<< line 8

fbase2.SizeLimit = 1024 * 1024

fbase.SaveToFile(strDir & arrWords(element))

?
Avatar billede jsc Nybegynder
24. april 2008 - 20:38 #4
jow... det kan jeg godt... får ingen fejl... men den bliver ignoreret... så den opfattes som "" og dermed bliver filen uploadet i "root"

/jsc
Avatar billede w13 Novice
24. april 2008 - 21:02 #5
Er det fordi den skal dim'es?

Dim strDir=request.form("dir")
?
Avatar billede jsc Nybegynder
25. april 2008 - 08:04 #6
hmm... så kommer der en Expected 'End' Error...

træls nok.
Avatar billede w13 Novice
25. april 2008 - 08:49 #7
Nå ja, så:

Dim strDir
strDir=request.form("dir")
Avatar billede jsc Nybegynder
25. april 2008 - 10:14 #8
nope... hjalp ikke.
request.form("dir") bliver opfattet som = "" hvilket den ikke er.

:(
/jsc
Avatar billede w13 Novice
25. april 2008 - 10:19 #9
Hvad hvis du lige prøver at udskrive den for en sikkerheds skyld?

Response.Write Request.Form("dir")
Avatar billede jsc Nybegynder
25. april 2008 - 10:25 #10
ja, så kommer der dette på skærmen (værdien skulle have stået mellem ><):

dir: ><

/jsc
Avatar billede jsc Nybegynder
25. april 2008 - 10:26 #11
kan man ikke disable binaryRead i "et stykke tid"... !?
/jsc
Avatar billede w13 Novice
25. april 2008 - 10:29 #12
Kan jeg se lidt mere af din kode?
Avatar billede jsc Nybegynder
25. april 2008 - 10:48 #13
ja, det kan du godt, men du ville ikke få noget ud af det... du ville bliver forvirret istedet. Jeg ved det hele virker, bort set fra at den ikke kan tage en ekstra form under mit upload-script... min upload form ser sådan ud (og binaryread forventer bare at der er et file-element... men den forventer ikke andet... - tror det er det, der er problemet):

<table border="0" cellspacing="0" cellpadding="0">
<FORM ACTION="<%=filnavn%>?<%=v1%>=Dokumenter&<%=v2%>=Upload_fil" METHOD="POST" ENCTYPE="multipart/form-data">
<tr>
  <td>Upload filen i:</td>
  <td><select size="1" name="dir"><option value="/">/</option><%
    strPathInfo = uploaddoc
    strPhysicalPath = Server.MapPath(strPathInfo)

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder(strPhysicalPath)
    Set objFolderContents = objFolder.Files
    Set objSubFolders = objFolder.SubFolders

    For Each objFolder in objSubFolders
    response.write "<option value='" & objFolder.name & "/'>/" & objFolder.name & "</option>"
    Next
%></select></td>
</tr>
<tr>
  <td>Fil: </td>
  <td><input type="file" size="40" name="FILE"></td>
</tr>
<tr>
  <td></td>
  <td><input type="submit" value="Upload fil" name="submitupload"></td>
</tr>
</form>
</table>

foruden denne kode, så ligger der design-kode omkring (dette ligger i include-filer) - i design-koden er der intet request.form nogen steder, så der burde ikke være noget i vejen. Det eneste der ikke passer sammen er Dir-select-boxen og file-elementet - kan man få binaryread til at læse på et andet element også!?

/jsc
Avatar billede jsc Nybegynder
25. april 2008 - 10:51 #14
har iøvrigt læst lidt her, men fatter ikke om det kan bruges til noget:
http://www.html.dk/dokumentation/objects/asp/intr8rl0.htm

/jsc
Avatar billede cpufan Juniormester
25. april 2008 - 23:03 #15
prøv

strdir = Upload.Form("dir")
Avatar billede jsc Nybegynder
26. april 2008 - 11:35 #16
cpufan -> den bliver du vist nødt til at forklare... så mangler jeg jo et objekt ved navnet Upload...

/jsc
Avatar billede jsc Nybegynder
26. april 2008 - 18:00 #17
sejt... jeg løste det... jeg læste lidt om Chili Upload på suns hjemmeside, og fandt ud af der fandtes en egenskab mere: FormData

dermed kunne jeg lave dette:

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

Response.Expires = 0
Set fbase = Server.CreateObject("Chili.Upload.1")
dim strSentence, arrWords, strOneWord, element
strSentence = fbase.SourceFileName
strSentence = Trim(strSentence)
arrWords = Split(strSentence, "\", -1, 1)
element = UBound(arrWords)

fbase.SizeLimit = 1024 * 1024

fbase.SaveToFile(fbase.FormData & arrWords(element))

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

FormData returnerede andre felters værdier, og det var jo netop det jeg skulle bruge ;)

tak for hjælpen - gider i og svare?
Avatar billede w13 Novice
26. april 2008 - 18:02 #18
Godt at høre, det blev løst. :)
Avatar billede jsc Nybegynder
25. juni 2008 - 19:02 #19
cpufan har haft chancen for at svare - pointene går til w13

/jsc
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

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