Avatar billede svjensen Nybegynder
16. september 2003 - 13:57 Der er 10 kommentarer og
1 løsning

Fil upload med Chili.Upload.1

Jeg forsøger - med udgangspunkt i et tidligere spørgsmål her fra eksperten - at uploade en fil vha. Chili-Upload-1 som min udbyder anvender (en del af Chili!ASP).

I filen 'side1.asp' vælger brugeren filen og angiver et navn:

-----------------side1.asp-----------------
<HTML>
<BODY BGCOLOR="white">
<HR>

<form action="side2.asp" method="post" enctype="multipart/form-data" name="PW" id="PW">
  <table CELLSPACING="0" CELLPADDING="3" BORDER="1" WIDTH="474">

<!-- FILE -->
    <tr>
      <td><small><font face="Verdana">Billede </font></small></td>
      <td><small><font face="Verdana"><input TYPE="file" name="FILE1"></font></small></td>
    </tr>


<!-- TEXT -->
    <tr>
      <td width="150"><div align="left"><p><small><font face="Verdana">Nyt filnavn :&nbsp; </font></small></td>
      <td width="324"><small><font face="Verdana"><input TYPE="TEXT" name="myText" value=""><br></font></small></td>
    </tr>

<!-- TEXTAREA -->
    <tr>
      <td width="150"><div align="left"><p><small><font face="Verdana">Beskrivelse :&nbsp; </font></small></td>
      <td width="324"><small><font face="Verdana"><textarea name="myTextArea" rows="4" value=""></textarea><br></font></small></td>
    </tr>

  </table>


<input type="button" name="upload" value="Upload" onClick="inputcheck(); "> 

</form>

<script language="JavaScript">

function inputcheck(){
    var file;
    var newname;
    var desc;

    file = document.PW.FILE1.value;
    newname = document.PW.myText.value;
    desc = document.PW.myTextArea.value;
    if (file.length < 1) {
        alert("Der skal vælges en fil");
        return false;
    }

    if (newname.length < 1) {
        alert("Der skal indtastes nyt filnavn");
        return false;
    }

    if (desc.length < 1) {
        alert("Der skal indtastes en beskrivelse");
        return false;
    }
document.PW.submit();

   
}
</script>

</BODY>
</HTML>
------------------side1.asp SLUT------------------
I side2.asp skulle filen så gerne uploades:

------------side2.asp----------------------
<HTML>
<BODY BGCOLOR="white">

<HR>

<%
'  Variables
'  *********
  Dim mySmartUpload
  Dim item
  Dim value
  Dim file
  dim nytfilnavn   
'  Object creation
'  ***************
Set mySmartUpload = Server.CreateObject("Chili.Upload.1")
   
'  Upload
'  ******

' gem filen med det navn der blev angivet på side 1
nytfilnavn = mysmartUpload.form("mytext")
 
nytfilnavn = server.mappath(".") & "\" & nytfilnavn
ret = mysmartUpload.files.item(1).saveas ("" & nytfilnavn & "")
mySmartUpload.SaveToFile("nytfilnavn")

response.write "gemt som : " & nytfilnavn
response.write "<br>"

response.write "indtastet text:" & mysmartUpload.form("myTextArea")
   

%>
</BODY>
</HTML>
------------side2.asp SLUT----------------
Men det bliver den ikke.

Hvad er galt?

Den seneste fejlmeddelelse angiver at jeg ikke kan anvende .form
Avatar billede eagleeye Praktikant
16. september 2003 - 14:13 #1
Chili!ASP doc.:
http://docs.sun.com/source/817-2514-10/Ch13_SpicePack68.html


denne linje er ikke mulig´med chili!ASP:
nytfilnavn = mysmartUpload.form("mytext")


JEg har selv prøvet chili!ASP hos b-one og kunne ikke få den til at medtage andre form felter samme med man uploadede en fil. Sevom dokumentationen siger det skulle være muligt med formcollection'en... Jeg har læst et sted at det med formcollecion'en ikke er lavet endnu, og først kommer med i nyere versioner af Chili!ASP, dog har jeg ikke noget entydigt bevis for dette.
Avatar billede eagleeye Praktikant
16. september 2003 - 14:16 #2
denne linje er ikke mulig´med chili!ASP:
-->
denne linje er ikke mulig´med chili!Upload:
Avatar billede svjensen Nybegynder
16. september 2003 - 17:34 #3
Har du fundet en vej rundt om det?

Eller har du opgivet?
Avatar billede eagleeye Praktikant
16. september 2003 - 17:42 #4
Det jeg fik til at virker var en form som kunne vælge et billede:

<FORM ACTION="upload.asp" METHOD="POST" ENCTYPE="multipart/form-data">
<INPUT TYPE="FILE" NAME="FILE1"><br>
<INPUT TYPE="SUBMIT" VALUE="Send">
</FORM>


Og så koden i upload.asp

<%
Set fbase = Server.CreateObject("Chili.Upload.1")
fbase.SizeLimit = 100000
filnavn = fbase.SourceFileName
t = inStrRev(filnavn,"\")
if t > 0 then  filnavn = Mid(filnavn,t+1)
fbase.SaveToFile(Server.mapPath("./" & filnavn))
Set fbase = Nothing
response.write "filen er nu gemt og hedder " & filnavn
%>


og som du kan se så det som objectet "Chili.Upload.1" giver er data omkring den fil der er uploadet. fbase.SourceFileName
Det virker fint den kan gemme filen.
Avatar billede svjensen Nybegynder
16. september 2003 - 21:34 #5
Det løser mit problem.
Jeg takker, husk lige et svar.

Søren
Avatar billede eagleeye Praktikant
16. september 2003 - 23:07 #6
Ok, men det var jo ikke meget hjælp så?
Avatar billede svjensen Nybegynder
17. september 2003 - 22:16 #7
Jeg syntes ikke lige at jeg havde overskud til at sætte mig meget ind i området, fejlfinde og teste selv, så jeg giver gerne pointene for at få lidt støtte.
Avatar billede badmanndk Nybegynder
24. februar 2004 - 15:53 #8
Det løste også en del af mit problem..
Men hvis jeg f.eks. vil have filerne til at ligge i en bestemt mappe, hvad gør jeg så.?
Avatar billede svjensen Nybegynder
24. februar 2004 - 21:52 #9
I linien 'fbase.SaveToFile(.....)' indsætter du bare dit mappenavn.
Fx fbase.SaveToFile(Server.mappath("./mappe/" & filnavn))
Avatar billede badmanndk Nybegynder
25. februar 2004 - 09:11 #10
alletiders.. takker
Avatar billede kratluskeren Nybegynder
29. marts 2004 - 16:41 #11
Kan man kontrollere om fbase.sourcefilename ikke er tom inden man laver denne:
filnavn = fbase.SourceFileName

ellers giver det en fejl.
(hvis man fx sender en tom frm til siden)
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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel