ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
1511
1511
EMPFEHLEN
-
Hallo
Versuche ein Upload Tool einzurichten. Mein Hoster benützt Persits ASP Uploader, habe mir dazu auch die Anleitung auf Persits angeschaut. Die Files funktionieren soweit auch, aber der eigentliche Upload funktioniert irgendwie nicht richtig. Wie muss ich das Zielverzeichnis angeben ?
Im Muster File steht: Count = Upload.Save("c:\upload")
Wenn ich das einfach so stehen lasse, bekomme ich die Meldung dass der Upload erfolgreich war, aber natürlich ist das File nicht in meine Webroot vorhanden. Habe auch schon versucht nur den Ordner ohne Laufwerk einzufügen aber das klappt alles nicht. Das File taucht auf dem Server nicht auf. Bin nach etwas Googlen auf den Begriff Server.MapPath gestossen aber da kommt auch eine Fehlermeldung. Weiss jemand wie ich das einrichten muss?
Gruss
-
Hallo
ich kenne mich mit der aspupload-Komponenten leider nicht aus. Wenn im Manual nichts über eine rel. Pfad steht, dann musst Du einfach mal durchtesten. Mit Sicherheit gibt es da eine Möglichkeit beschreiben. Ob Du mit dem Server.Mappath() weiterkommst, wage ich bei diesen Komponenten zu bezweifeln, denn die Pfadverarbeitung ist wohl in der Komponenten mit verarbeitet.
Bei der ASPsmartupload-Komponente kann man die Pfade so anlegen.
Ersteres Beispiel würde mir jetzt das File in ein 2 Ordner tieferes Verzeichnis im Root des Servers laden.
Das 2. Beispiel beschreibt auch den physikalischen Pfad.
intCount = mySmartUpload.Save("/aspSmartUpload/Upload")
' sample with a physical path
' intCount = mySmartUpload.Save("c:\temp\")
Allerdings sind dort beide Möglichkeiten in den samples angegeben.
Wenn man wirklich im Manual nichts dergleichen beschrieben findet und es echt nicht funktionieren will, würde ich mich an den Support wenden. Naja, oder jemand hier arbeitet mit der Komponenten und kann Dir helfen.Geändert von Luzie (27.12.04 um 15:06 Uhr)
liebe Grüße, die Luzie
-
Also,
Die Anleitung stimmt, ausprobieren muss man trotzdem ich muss jetzt das Laufwerk angeben. d:\wwwroot\meineSeite\upload dann funktioniert es UND man muss SCHREIBRECHTE haben ! Da kann ich ja noch lange üben .... egal.
Aber jetzt habe ich noch ein anderes Problem. Wie kann ich die Files im Ordner eindeutig kennzeichnen? Habe schon versucht eine eindeutige Auftragsnummer vor das File zu klemmen aber ich kriege das nicht hin. Das komische ist das das Upload File die Formwerte nicht in klassischer Weise entgegennimmt und dann verarbeitet, aber das liegt wahrscheindlich an der Kompnente dass die begreift dass sie alles was vom Formtyp file kriegt speichern muss.
Also das Speichern sieht bei Persits so aus:
Count = Upload.Save("d:\wwwroot\meineSeite\upload\")
Wo oder wie klemme ich da jetzt noch meinen Wert dazwischen habs schon so probiert:
Count = Upload.Save("d:\wwwroot\meineSeite\upload\"" & myANR & "")
Aber das geht nicht. Habs auch schon umgebaut etc. und dem Formular mitgeben hab ich nicht geschnallt. Da der type="file" ja kein value hat was man frisieren könnte.
Weiss da jemand Bescheid ?
-
Wie und ob das nu beim aspupload funktioniert, dass kann ich nicht sagen. Aber sicherlich gibts im Manual einen Punkt, wo nach Existenz des Files abgefragt wird. Dies sind meist die Stellen, die man für solche Änderungen nutzen kann. Bei SoftArtisans und auch bei ASPsmartupload existieren diese Abfragen direkt in der Komponente und sind Teil des Objektes. Bei SA wird eine laufende Nummer vor den Dateinamen gesetzt. Dies wird durch u.g. Programmierung realisiert.
bsp. SA
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
'--- Save the file now. If you want to preserve the original user's filename, use '--- Dim aa, Dateiname,dat_temp, dat_ext, temp2,jj aa=split(upl.userfilename,"\") Set oFM = Server.CreateObject("SoftArtisans.FileManager") If oFM.FileExists(upl.path &"\" & aa(ubound(aa))) Then dat_temp=left(aa(ubound(aa)),len(aa(ubound(aa)))-4) dat_ext=right(aa(ubound(aa)),4) jj=0 do ' Zahl hinten anhängen jj=jj+1 temp2=dat_temp & "_" & jj & dat_ext Loop while oFM.FileExists(upl.path &"\" & temp2) Dateiname=temp2 upl.Form("FILE1").SaveAs Dateiname 'wichtigste Funktion textout=textout & "- Datei " & aa(ubound(aa)) &" unter " & Dateiname & " gespeichert<br>" else upl.Form("FILE1").Save Dateiname=aa(ubound(aa)) textout=textout & "- Datei " & Dateiname &" gespeichert<br>" end if
Bei ASPsmartupload gibts auch ein Sample, wo die Existenz des Files abgefragt wird und wo man file.filename durch einen eigenen Namen ersetzen.
Aber es ist wichtig, dass man zuerst einmal den filenamen splittet oder sich der Properties bedient, die die Komponente noch bietet, um auch das korrekte Format zu speichern. Das sind einfach die Stellen, die man in den jeweiligen Scripten suchen und nutzen kann. Diese MÜSSTEN bei kostenpflichtigen Komponenten einfach vorhanden sein.
Code :1 2 3 4 5 6
If not file.IsMissing Then ' Save the files with his original names in a virtual path of the web server ' **************************************************************************** file.SaveAs("/aspSmartUpload/Upload/" & file.FileName) ' sample with a physical path ' file.SaveAs("c:\temp\" & file.FileName)
Hat jetzt zwar unmittelbar nichts mit Deinem Problem zu tun, aber ich häng Dir nochmal ein Script an, wo man eine Textdatei mit lfd. Nummer erzeugen kann. Entspr. angepasst kann u.U. für solche Aktionen ganz hilfreich sein.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
<%@LANGUAGE="VBSCRIPT"%> <% option explicit %> <% 'Response.buffer = true %> <html> <head> <title>neue Textdatei erzeugen</title> </head> <body> <form name="form1" method="post" action="<% = Request.Servervariables("script_name")%>"> <textarea name="kommentar" cols="50" rows="10" style="border:1px dotted black"></textarea> <br> <input type="submit" name="go" value="go"> </form> <% if Request("Kommentar") <> "" then dim myPath, path, FolderObject, ListFolder, sAlleDateien path = "textdateien" myPath = Server.MapPath(path) Set FolderObject = CreateObject("scripting.FilesystemObject") set ListFolder = FolderObject.GetFolder(myPath) Set sAlleDateien = ListFolder.Files ' --- Anzahl der im Verzeichnis befindlichen Dateien dim AnzahlDateien AnzahlDateien = sAlleDateien.Count ' --- Wenn noch keine Datei vorhanden Dim neuerName if anzahlDateien = 0 Then neuerName= "00001.txt" ' --- ansonsten immer um 1 hochzählen der zuletzt eingefügten Datei dim x, n, f else x=0 For each f in listFolder.files n = cint(left(f.name,5)) if n>x then x = n neuerName = right("0000" & (x+1),5) & ".txt" next end if Response.write "Anzahl der vorhandenen Dateien: " & AnzahlDateien & "<br>" Dim objTextStream Set objTextStream = FolderObject.CreateTextFile _ ( _ Server.MapPath ("textdateien/" & neuerName & "" )) ' --- Einfügen des Textes Dim strFileContent strFileContent = Replace(Request("Kommentar"),vbcrlf,"<br>") objTextStream.Write strFileContent Response.Write "<br>Die Datei " & neuerName & " wurde erzeugt <br>und beinhaltet folgenden Text:<br><br>" objTextStream.Close set sAlleDateien = nothing Set objTextStream = Nothing Set FolderObject = Nothing Server.Execute "Textdateien/" & neuerName end if %> </body> </html> %>liebe Grüße, die Luzie
-
Hey Luzie
Danke für die umfangreiche Antwort. Hab alles ausprobiert aber bin leider noch nicht weiter. Habe einen Teil des Problems gelöst.
Die "billige" Lösung wäre Upload.OverwriteFiles auf False zu setzten. Dann fügt die Komponente automatisch Zahlen hinzu. Funktioniert grundsätzlich aber ich muss das File überspeichern bzw. updaten können. Man könnte es so lösen aber dann habe ich das Problem, dass ich ein riesen Filehaufen habe und nicht weiss welche Files noch verwendet werden und welche einfach nur Platz brauchen.
Hat irgendjemand Erfahrung mit dem PERSITS ASP Upload für normales ASP und nicht .net Ich komme da einfacht nicht weiter -- voll frustrierend.
Zudem kann man ja im Form keine Werte mer übergeben. Habe jetzt meinen eindeutigen Wert via Session übertragen. Aber auch so kann ich den Inhalt dem Dateinamen nicht anfügen. Es will einfach nichts klappen. Das letzte was ich hoffte zu funktioneren war:
Code :1
Set File = Upload.Files("FILE1" & Session("upload") & "")
Aber das klappt auch nicht!
HIIILLLLFFFEEE
-
Morgen,
noch kurz ein Tipp
Du könntest Dir den Filenamen in eine Datenbank speichern und die Werte mit dem Inhalt Deines Folders, wo die Images liegen vergleichen und diejenigen, die keine Datenbankzuordnung haben, dann löschen.
Naja, aber vielleicht hat noch ja jemand anderes Erfahrungen mit ASPupload.liebe Grüße, die Luzie
-
So habs jetzt hingekriegt. Man mit der Persits Komponente bei uploadden keine Files umbenennen aber man kann diese in derselben Schlaufe kopieren, umbenennden und das Original löschen. Das sieht dann so aus:
Code :1 2
File.Copy("c:\meineSeite\upload/" & myName & File.Ext) File.Delete
So wird das File von z.B. agb.doc mit meiner Variable myName ergänzt und sieht dann so aus: 1234agb.doc.
Wie Ihr wollt. Aber ich danke der Luzie für Ihre Inputs
see ya
Ähnliche Themen
-
Upload Script - JPG KEIN Upload möglich
Von Radanua im Forum PHPAntworten: 12Letzter Beitrag: 12.09.10, 21:32 -
Problem mit Mailversand über Persits.MailSender
Von ayin im Forum ASPAntworten: 0Letzter Beitrag: 20.09.06, 16:24 -
upload über upload.aspx
Von NightPain im Forum Visual Basic 6.0Antworten: 0Letzter Beitrag: 25.07.06, 18:19 -
Upload mit .zip
Von Dönerman im Forum PHPAntworten: 14Letzter Beitrag: 02.09.05, 13:24 -
upload via SSH ?
Von blubber im Forum Hosting & WebserverAntworten: 7Letzter Beitrag: 01.04.03, 01:06





Zitieren
Login





