webForumDet fria alternativet

aspSmartUpload!

ASPur ASP

9 svar · 372 visningar · startad av Alex_net

Alex_netMedlem sedan okt. 200225 inlägg
#1

Web-Hotel har stöd för aspSmartUpload.

Vill använda den formulär för att ladda upp bild i temp katalog på server.
(vid uppladdning av bilden ska skapas egen temp katalog för varje bild och på så sätt undvikas problem med bilder som har samma namn).

Sen hela formuläret ska sparas i access databas som text data typ
(namn på temp katalogen + bildens namn, samt andra fälten som namn, rubrik osv..)

Har försökt men det går inte fattar inte riktigt.

Finns det någon som har någon färdigt exempel, eller som kan hjälpa med den här formuläret
(kanske enklaste).

Har läst manualer på smartupload men det hjälper inte.

Tack!

-----------------------------------------------------------
Exempel på folmuläret!
------------------------------------------------------------
<html>
<head>

<title></title>

</head>
<body>

<form method="post" action="spara.asp" enctype="multipart/form-data">

<input type="text" name="Rubrik" size="20"><br>

<input type="password" name="pris" size="20"><br>

<textarea name="artikel" cols="45" rows="5"></textarea><br>

<input type="file" name="file" size="20"><br>

<input type="submit" value="upload"><br>

</form>

</body>
</html> :q

crisse6Medlem sedan dec. 20002 526 inlägg
#2

Varfor inte testa Overrides uploadskript istallet? Funkar skitbra och ar komponentlos! Jag har skrivit i den traden for bla fora in access db....

sen med att skapa mapp ar val FSO som galler :)

Alex_netMedlem sedan okt. 200225 inlägg
#3

Vart finns Overrides uploadskript exempel hittar ej.
Har hittat några inlägg men inte själva skript.

PellefantMedlem sedan maj 20023 372 inlägg
#4

Här har du en länk till scriptet: http://www.webforum.nu/showthread.php?s=&threadid=45211

OveRRidEMedlem sedan feb. 200112 078 inlägg
#5

De vanligaste frågorna och svaren finner du här.

Alex_netMedlem sedan okt. 200225 inlägg
#6

Nån sa att man ska skappa ett bildnamns-generator för att undvika att två stycken personer kan ladda upp en bild med samma namn Typ 32434334_1700_453.gif. "

Hur kan man göra det praktiskt här i koden
---------------------------------------------------------------------------------

Set MyFile = ScriptObject.CreateTextFile(Server.mappath(filename))

--------------------------------------------------------------------------------
och sen visa här

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 & """>"

---------------------------------------------------------------------------------
och spara i databas som text.

Jag är ingen proffs (nybörjare) tyvärr!

Tack!

MacceMedlem sedan apr. 2001425 inlägg
#7
<FORM name="add" METHOD="POST"   ACTION="<%=Request.ServerVariables("SCRIPT_NAME")%>?action=save"
 ENCTYPE="multipart/form-data"><br> Använd "bläddra" 
och välj bild för uppladdning:<br>  
	<input type="FILE" name="FILE1" size="40">
 <input type="SUBMIT" value="Spara" name="SUBMIT"></form>

If request.querystring("action")="save" then
On Error Resume Next
	   Dim mySmartUpload, myFile, namn, intCount, file, filslut    

Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload") 

	   mySmartUpload.AllowedFilesList = "jpg,gif,png"
	   mySmartUpload.DenyPhysicalPath = False
	   mySmartUpload.MaxFileSize = 50000
	     
	 
	   mySmartUpload.Upload
                  
                   filslut = right(mySmartUpload.files.item(1).FileName,4)'för att ta med .jpg .png eller .gif

	   intCount = mySmartUpload.files.item(1).saveas( sökväg & "/" & RecSet("Id") & filslut)
	   
	  If Err Then
			Response.Write("<b>Fel : </b>" & Err.description)
		 Else
		 
			
		Response.redirect("fungerar_OK.asp")
	   End If
		Set mySmartUpload = nothing
END IF

RecSet("Id"), hämtar du från den post där sökvägen lagras i db:n

OBS ! Har inte testat koden, men principen förstår du nog ;)

PellefantMedlem sedan maj 20023 372 inlägg
#8

Alex_net : Posta gärna din kod här när du får årdning på det, är nyfiken på den.

Alex_netMedlem sedan okt. 200225 inlägg
#9

Macce, har testat din kod men det funkar ej....
Men eftersom har redan kommit en bit med "Overrides uploadskript" som är helt ok tycker jag, tänker också utveckla den vidare.

Har lyckats att spara i databas (som text) både laddade filen och andra formulärelement.

Har testat skriptet både på https://www.24-7webhosting.com som kör (Linux och Chilli Asp komp),
samt på https://www.swede.com (Win2000 Server) funkar helt ok...

Det är 3 saker som måste fixas innan är skriptet fult användbar:

1. Kontroll av bildstorlek (bild mindre än 250k) och bildtyp tex jpeg, gif.

2. Skapa ett bildnamns-generator för att undvika att två stycken personer kan ladda upp en bild med samma namn.

3. Tillåta att formuläret ska skickas och sparas i databas oavsett om jag har valt att lada bild eller ej. Eftersom det är ett blandat formulär som har andra formulärelement (namn, email osv…), och jag har inte behöv att alltid ladda filer ibland det räcker bara med andra formulärelement som namn, email….

Så långt har jag kommit med koden som funkar, det skulle vara trevlig om vi kan modifiera koden och lägga till ovannämnda funktioner.

Exempel på kod som är testat och funkar:

Default.asp
-----------------------------------------------------------------------------------
<html>
<head>
<title>Ladda upp fil</title>
</head>

<body>

<form method="post" action="../upload/outputfile.asp" enctype="multipart/form-data">

\<input type="text" name="namn"\>\<br\>

\<input type="text" name="email"\>\<br\>

\<input type="file" name="blob"\>\<br\>

\<input type="submit" value="Ladda upp, yo!"\>

</form>

</body>
</html>
-----------------------------------------------------------------------------------

outputfile.asp
-----------------------------------------------------------------------------------
<html>
<head>
<title>Upload</title>
</head>

<body>

<%
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

'Exempel på hur man kan 'plocka ner' andra forumlärelement
namn = UploadRequest.Item("namn").Item("Value")
email = UploadRequest.Item("email").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(filename))

For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next

MyFile.Close

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 & """>"

response.write "<b>Filens email:</b> " & email & "<br>"
response.write "<b>Filens namn:</b> " & namn & "<br>"

namn = UploadRequest.Item("namn").Item("Value")
email = UploadRequest.Item("email").Item("Value") 

'spara i databas

Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "Provider=Microsoft.Jet.OLEDB.4.0; "&\_
"Data Source="&Server.MapPath("/lada/test.mdb")

SQLStmt = "INSERT INTO lada (namn, email, filename) "
SQLStmt = SQLStmt & "VALUES('" & namn & "','" & email & "', '" & filename & "') "

Set RS = Connection.Execute(SQLStmt)

Connection.Close 

%>

' upload.asp behövs ej modifieras
<!--#include file="../upload/upload.asp"-->

</body>
</html>

MacceMedlem sedan apr. 2001425 inlägg
#10

Generator behövs väl inte om du sparar bilden med samma namn som id:t i databasen.

Varför ska du spara själva bilden i databasen ?

Storleken ställer du enkelt i smartupload:
mySmartUpload.MaxFileSize = 250000

Giltiga bildtyper:
mySmartUpload.AllowedFilesList = "jpg,gif,png"

Har inte tittat på din komponentlösa upload, kanske går enkelt att ställa där med ?!?

Mvh

133 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)