webForumDet fria alternativet

Hjälp med upload, som filnamn sparas i databasen

ASP

3 svar · 299 visningar · startad av cyeclone

Medlem sedan dec. 2004143 inlägg
Frågan#1

Hejsan!

Sitter nu och klämmer till en del av det sista på min webshop, behöver nu lite hjälp med uploadscriptet. Om jag inte "bläddrar" och lägger till en bild i formen, så får jag ett fel meddelande på denna kod.
Jag vill att det ska fungera att skicka en post utan en bild..

<!--#include file="includes/settings.asp"-->
<%
	Set Upload = Server.CreateObject("Persits.Upload.1")
	
	Upload.OverwriteFiles = False

	Upload.SetMaxSize 1048576	' Limit files to 1MB
	Count = Upload.Save(""&rooten&"")
	%>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
  	Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath(" "&databas&" ")&";pwd=lurifix!"
  	Set RecSet = Server.CreateObject("ADODB.Recordset")
	lol = "Select * FROM Produkter"
	RecSet.Open lol, Connect, 1, 3
	
	RecSet.addnew
	Recset("Art-Nr") = Upload.Form("Art-Nr")
	Recset("produktnamn") = Upload.Form("produktnamn")
	Recset("pris") = Upload.Form("pris")
	Recset("reapris") = Upload.Form("reapris")
	Recset("besk") = Upload.Form("besk")
	Recset("bild") = Upload.Files(1).ExtractFileName
	Recset("MID") = Upload.Form("MID")
	Recset("KAID") = Upload.Form("KAID")
	Recset("visa") = Upload.Form("visa")
	
	RecSet.Update
	RecSet.Close
	
	session("adminmess") = "Produkten är nu tillagt."
	response.Redirect "index.asp?page=login_admin&admin_page=start&a=produkter" 
		%>

felmedelande:

Microsoft VBScript runtime error '800a01a8' 

Object required: 'Upload' 

/admin_produkter_new3.asp, line 23

line 23:

Recset("bild") = Upload.Files(1).ExtractFileName

För när jag laddar upp en bild, så vill jag att filnamnet ska sparas i databasen, men eftersom det inte är någon fil med så vet jag inte hur det ska bli, man kanske kan ersätta line23 alltså "Recset("bild") = Upload.Files(1).ExtractFileName" med att man skriver in värdet ingenbild.gif istället? men jag har inte kommit på någon bra lösning för detta.. och vet inte hur jag ska göra det.

Skulle vara tacksam för svar!

Medlem sedan okt. 2003132 inlägg
#2

är det inte enklare om du döper om bilden vid uppladdning till tex artikelnummer så kommer du även undan risken att en bild blir överskriven med en som har samma namn

Medlem sedan dec. 2004143 inlägg
#3

"Upload.OverwriteFiles = False" löser det med risken att en bild blir överskriven.... Men hur skulle det hjälpa mig om jag bytte namn på filen innan uppladdning?

Medlem sedan juni 200032 967 inlägg
#4
  1. Skapa ett filobjekt innan du lägger in informationen i databasen:
Set file = Upload.Files("Namnet på file-fältet i formuläret")
If not file is nothing then
   strBild = File.ExtractFileName
Else
   strBild = "ingenbild.gif"
End if

Byt sedan ut denna rad:

Recset("bild") = Upload.Files(1).ExtractFileName

Mot:

Recset("bild") = strBild

Sedan kan du ta bort de onödiga tomsträngstilläggen här:

Count = Upload.Save(""&rooten&"")

:

Count = Upload.Save(rooten)

Försök att inte konkatenera en massa i onödan.

mvh

262 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)