webForumDet fria alternativet

aspUpload

25 svar · 1 085 visningar · startad av WebbisNet

WebbisNetMedlem sedan feb. 20032 027 inlägg
#1

Hur skriver man in rätt sökväg, just nu kan den inte hitta en korrekt sökväg

är scriptet rätt i övrigt, vill ladda upp den och förminska den till en viss storlek

   Set Upload = Server.CreateObject("Persits.Upload")
   Image = Upload.Save("../images/users/")
   
 For Each File in Upload.Files
   If File.ImageType = "UNKNOWN" Then
      Response.Write "This is not an image."
      Response.End
   End If

   Response.Write File.Path & "<BR>"
   Response.Write "Type: " & File.ImageType & "<BR>"
   Response.Write "Size: " & File.ImageWidth & " x " & File.ImageHeight & " pixels"
Next
ZaimanMedlem sedan dec. 20014 239 inlägg
#2

Det jag kan tänka mig är att parent paths är avslagen i IIS. Då fungerar inte din sökväg med ".." i. Utan du måste använda dig av Server.MapPath för att få ut korrekt sökväg.

WebbisNetMedlem sedan feb. 20032 027 inlägg
#3

Zaiman skrev:

Det jag kan tänka mig är att parent paths är avslagen i IIS. Då fungerar inte din sökväg med ".." i. Utan du måste använda dig av Server.MapPath för att få ut korrekt sökväg.

Hur lägger jag in Server.MapPath så att det blir korrekt?
är koden riktig i övrigt eller måste nåt ändras?

oskarsMedlem sedan nov. 20051 317 inlägg
#4
Upload.Save Server.Mappath("../bilder/")

Så t.ex :)

WebbisNetMedlem sedan feb. 20032 027 inlägg
#5

Nu funkar det utan felmeddelande men jag får inte med filnamnstillägget i filen och sen undrar jag hur man skriver in filstorlek

   Set File = Server.CreateObject("Persits.Upload")
   File.Save Server.Mappath("../images/users")
	File.SetMaxSize 50000, True
   
 For Each File in File.Files
   If File.ImageType = "UNKNOWN" Then
      Response.Write "This is not an image."
      Response.End
   End If

   Response.Write File.Path & "<BR>"
   Response.Write "Type: " & File.ImageType & "<BR>"
   Response.Write "Size: " & File.ImageWidth & " x " & File.ImageHeight & " pixels"
Next
ZaimanMedlem sedan dec. 20014 239 inlägg
#6

Här hittar du exempel på hur du gör: http://www.aspupload.com/manual.html

WebbisNetMedlem sedan feb. 20032 027 inlägg
#7

Zaiman skrev:

Här hittar du exempel på hur du gör: http://www.aspupload.com/manual.html

vad är det för object.required i det fetmarkerade området som saknas
picture = "update tblUsers set picture='"& Session("userID") &"'"".""'"& File.ImageType &"' , fotovalidering=1 where userID="& uid &""

WebbisNetMedlem sedan feb. 20032 027 inlägg
#8

ingen som kan hitta vad det är för object required här?

oskarsMedlem sedan nov. 20051 317 inlägg
#9

Antar att det är File.ImageType som den inte hittar... visa hela koden så vi ser hur du gjort!

WebbisNetMedlem sedan feb. 20032 027 inlägg
#10

oskars skrev:

Antar att det är File.ImageType som den inte hittar... visa hela koden så vi ser hur du gjort!

<!-- #include virtual="/include/dbconn.asp" -->
<%
	Set File = Server.CreateObject("Persits.Upload")
	File.Save Server.Mappath("../images/users")
	File.SetMaxSize 50000, True

 For Each File in File.Files
   If File.ImageType = "UNKNOWN" Then
      Response.Write "This is not an image."
      Response.End
   End If
Next

Dim objConn
usr=Session("username")
uid=Session("userID")

	SET objConn = connect()
	picture = "update tblUsers set picture='"& Session("userID") &"'"".""'"& File.ImageType &"' , fotovalidering=1 where userID="& uid &""
	response.write picture
	'response.end
	objConn.Execute(picture)
	
	
	
	Dim username, email, userID
userID = Session("userID")
username = Session("username")
'email = Request.Form("Email")

sTo = "stefan@stene.nu"

'sCC = ""& email &""
sFrom = "image@stene.nu"
sSubject = "Fotovalidering från " & username & " [medlemsID " & userID & "]"
sTextBody = "Det har anlänt ett nytt foto som ska valideras på "& title &""

Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.ServerAddress = "smtp.axentus.net"
JMail.Sender = username
JMail.Silent = true
JMail.Logging = true
JMail.AddRecipientBCC "stefan@stene.nu"
'JMail.AddRecipient  sTo
JMail.Subject = sSubject
'JMail.AddRecipient sTo
JMail.Body = sTextBody
JMail.Priority = 1
  IF NOT JMail.execute THEN
        Response.Write( "ERROR MESSAGE: " & JMail.ErrorMessage & "<BR>" & vbcrlf )
        Response.Write( "ERROR SOURCE: " & JMail.ErrorSource & "<BR>" & vbcrlf )
        Response.Write( "LOG: <pre>" & JMail.Log & "</pre>" & vbcrlf )
    ELSE
        JMail.execute
    END IF
Application.Unlock

response.redirect "/pictureupload/validatePhoto.asp?filename="& Session("userID") &"." & File & "&id="& uid &"&usr="& usr &"&size=" & File.Size & ""%>
WebbisNetMedlem sedan feb. 20032 027 inlägg
#11

Gör jag så här

	picture = "update tblUsers set picture="& varUID &" ""."" "& varFile &" , fotovalidering=1 where userID="& uid &""

så får jag object required File

oskarsMedlem sedan nov. 20051 317 inlägg
#12

Du får lägga hela den UPDATE-koden inom "For Each File in File.Files"-loopen!

WebbisNetMedlem sedan feb. 20032 027 inlägg
#13

det gick bättre men jag lyckas inte få in punkten mellan id och filnamnstillägg utan felmeddelande

voigtann1Medlem sedan juni 20019 519 inlägg
#14

picture ser ju ut att vara ett varchar och skall ha ' i SQL frågan.

WebbisNetMedlem sedan feb. 20032 027 inlägg
#15

när jag skriver ut frågan nu får jag
update tblUsers set picture='1.JPG' , fotovalidering=1 where userID=1
som det ska vara men om jag inte skriver ut den så får jag file-problemet igen

 For Each File in File.Files
   If File.ImageType = "UNKNOWN" Then
      Response.Write "This is not an image."
      Response.End
   End If

Dim objConn

usr=Session("username")
varUID=Session("userID")
varFile=File.ImageType

	SET objConn = connect()
	picture = "update tblUsers set picture='"& varUID &"."& varFile &"' , fotovalidering=1 where userID="& varUID &""
	response.write picture
	response.end
	objConn.Execute(picture)
	
Next
voigtann1Medlem sedan juni 20019 519 inlägg
#16

ta bort response.end och flytta den ner till efter "next" och kommentera ut objConn.Execute(picture)
Så ser du om du kör skriptet fler gånger. Det kan ju vara så att det är två filer du försöker ladda upp och ena fungera.

red.

Det kan ju också vara så att du försöker redirecta till en sida med objektet file som inte finns efter din for sats. Kolla vilken rad som generera felet.

WebbisNetMedlem sedan feb. 20032 027 inlägg
#17

nu får jag inget fel men bilden jag valde för uppladdning är inte den som laddas upp, den jag ser är den som redan finns på servern. Finns a.jpg på servern och jag laddar upp b.jpg så är det a.jpg som syns som den som ska laddas upp

voigtann1Medlem sedan juni 20019 519 inlägg
#18

har du fler uppladdnings formulär? dvs kan man ladda upp mer än en bild? det ser ju ut som du bara kan ladda upp en bild i din kod, eftersom du har bytt namn till userId

WebbisNetMedlem sedan feb. 20032 027 inlägg
#19

man kan bara ladda upp en bild eftersom det är bilden i sitt krypin, presentationsbilden

<!-- #include virtual="/include/dbconn.asp" -->
<!-- #include virtual="/include/variabler.asp" -->
<%
	Set File = Server.CreateObject("Persits.Upload")
	File.Save Server.Mappath("../images/users")
	File.SetMaxSize 50000, True

 For Each File in File.Files
   If File.ImageType = "UNKNOWN" Then
      Response.Write "This is not an image."
      Response.End
   End If

Dim objConn

usr=Session("username")
varUID=Session("userID")
varFile=File.ImageType

	SET objConn = connect()
	picture = "update tblUsers set picture='"& varUID &"."& varFile &"' , fotovalidering=1 where userID="& varUID &""
	objConn.Execute(picture)

Dim username, email, userID
userID = Session("userID")
username = Session("username")

sTo = "stefan@stene.nu"
sFrom = "image@stene.nu"
sSubject = "Fotovalidering från " & username & " [medlemsID " & userID & "]"
sTextBody = "Det har anlänt ett nytt foto som ska valideras på "& title &""

Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.ServerAddress = "smtp.axentus.net"
JMail.Sender = username
JMail.Silent = true
JMail.Logging = true
JMail.AddRecipientBCC "stefan@stene.nu"
JMail.Subject = sSubject
JMail.Body = sTextBody
JMail.Priority = 1
  IF NOT JMail.execute THEN
        Response.Write( "ERROR MESSAGE: " & JMail.ErrorMessage & "<BR>" & vbcrlf )
        Response.Write( "ERROR SOURCE: " & JMail.ErrorSource & "<BR>" & vbcrlf )
        Response.Write( "LOG: <pre>" & JMail.Log & "</pre>" & vbcrlf )
    ELSE
        JMail.execute
    END IF
Application.Unlock

response.redirect "validatePhoto.asp?filename="& varUID &"." & varFile & "&id="& varUID &"&usr="& usr &"&size=" & File.Size & "&file="& File.FileName &""
Next
%>

jag ser absolut inte var felet är, sen undrar jag när det här felet är löst.....kan man hänga på kod som automatiskt förminskar bilden till en viss storlek med?

voigtann1Medlem sedan juni 20019 519 inlägg
#20

Jag ser inte när du laddar upp filerna på servern med ditt skript just nu, eller byter namn på filen som laddas upp...
Sen använder du dig av en massa variabler som är lika med så många andra

Jag har rensat upp lite kod så det blir lite enklare att läsa:

<!-- #include virtual="/include/dbconn.asp" -->
<!-- #include virtual="/include/variabler.asp" -->
<%
Set File = Server.CreateObject("Persits.Upload")
File.Save Server.Mappath("../images/users")
File.SetMaxSize 50000, True

For Each File in File.Files
	If File.ImageType = "UNKNOWN" Then
		Response.Write "This is not an image."
		Response.End
	End If

	Dim objConn, FileName, username, userID
	userID = Session("userID")
	username = Session("username")
	FileName = userID & "." & File.ImageType

	SET objConn = connect()
	picture = "update tblUsers set picture='" & FileName & "' , fotovalidering=1 where userID=" & userID
	objConn.Execute(picture)
	Set objConn = Nothing

	sTo = "stefan@stene.nu"
	sFrom = "image@stene.nu"
	sSubject = "Fotovalidering från " & username & " [medlemsID " & userID & "]"
	sTextBody = "Det har anlänt ett nytt foto som ska valideras på "& title

	Set JMail = Server.CreateObject("JMail.SMTPMail")
	JMail.ServerAddress = "smtp.axentus.net"
	JMail.Sender = username
	JMail.Silent = true
	JMail.Logging = true
	JMail.AddRecipientBCC "stefan@stene.nu"
	JMail.Subject = sSubject
	JMail.Body = sTextBody
	JMail.Priority = 1
	If Not JMail.execute Then
		Response.Write( "ERROR MESSAGE: " & JMail.ErrorMessage & "<BR>" & vbcrlf )
		Response.Write( "ERROR SOURCE: " & JMail.ErrorSource & "<BR>" & vbcrlf )
		Response.Write( "LOG: <pre>" & JMail.Log & "</pre>" & vbcrlf )
	Else
		JMail.execute
	End If

	Response.Redirect "validatePhoto.asp?filename=" & FileName & "&id=" & userID & "&usr=" & username & "&size=" & File.Size & "&file=" & File.FileName
Next
%>

Och ja, det går att skala ner bilder om du har en komponent för detta.

142 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)