asp ile upload

ztalu
12-01-2009, 19:51   |  #1  
OP Taze Üye
Teşekkür Sayısı: 0
4 mesaj
Kayıt Tarihi:Kayıt: Eki 2007

siteme asp ile upload yapmam lazım. aspde yeniyim. bunu yaparken veri tabanı kullanmak zorunlu mu?
onbeş gündür sürekli uğraşıyorum ama hala anlamış değilim. lütfen nasıl yapılabildiği hakkında bilgi verin.

studyocrea
14-01-2009, 18:20   |  #2  
Taze Üye
Teşekkür Sayısı: 0
12 mesaj
Kayıt Tarihi:Kayıt: Oca 2009

Upload sistemleri çeşitlidir. Persist, FSO vs. vs. FSO harici tekniklerde bildiğim kadarıyla hostunun sunucusunda o tekniklere ait eklentilerin olması gerekir. ama fso için gerekmez. Aşağıda fso ile upload konusunda bi kod veriyorum. tabi yüklenecek dosya yolunu vs kendi hostuna göre ayarla ve yüklenecek klasöre yazma izni (chmod 777) yapman lazım.


Dosya seçeceğimiz sayfa. İsmi önemli değil.

------------ UploadForm.htm----------------

<FORM METHOD="Post" ENCTYPE="multipart/form-data" ACTION="Upload.asp">
Dosya:<INPUT NAME="dosya" TYPE="file" size="25"><BR>
<INPUT TYPE="submit" Value="Kaydet">
</FORM>
------------


Ve bu formdan dosyayı alıp servera yükleyecek Upload.asp sayfamız. Bu kod üzerinde sadece 4.satırda Yol isimli değişkende yüklenecek klasörü belirleyin. Sondaki işaretini ise kaldırmayın.

-----------Upload.asp--------
<%
Set Yukle = New DosyaYukleme

Yol = Server.Mappath("dosyalar")&""

DosyaIsmi = Yukle.FileName (" dosya ")

Set FSO = Server.CreateObject("Scripting.FileSystemObject" )

Set YeniDosya = FSO.CreateTextFile(Yol & DosyaIsmi)

For i = 1 To LenB(Yukle.Value("dosya" ))
   YeniDosya.Write Chr(AscB(MidB(Yukle.Value("dosya" ), i, 1)))
Next


YeniDosya.Close
Set YeniDosya = Nothing
Set FSO = Nothing

Set Yukle = Nothing
%>
Yüklendi.

<!-- ***** Bu bölümden aşağısını değiştirmeyin. **** -->

<%
Class DosyaYukleme

     Private pvObjUploadRequest
      
     Private Sub Class_Initialize
          Dim RequestBin, Boundary, Value
          Dim lngPosBegin, lngPosEnd, lngBoundaryPos
          Dim lngPos, lngPosFile, lngPosBound
          Dim strName, strFileName, strContentType
          Dim objUploadControl

           
          Set pvObjUploadRequest = Server.CreateObject("Scripting.Dictionary" )
           
           
          RequestBin = Request.BinaryRead(Request.TotalBytes)
           
           
          lngPosBegin = 1
          lngPosEnd = InStrB(lngPosBegin, RequestBin, GetByteString(Chr(13)))
          Boundary = MidB(RequestBin, lngPosBegin, lngPosEnd - lngPosBegin)
          lngBoundaryPos = InstrB(1, RequestBin, Boundary)
           
           
          Do Until (lngBoundaryPos = InstrB(RequestBin, Boundary & getByteString("--" )))
               
               Set objUploadControl = CreateObject("Scripting.Dictionary" )
               
               
               lngPos = InstrB(lngBoundaryPos, RequestBin, GetByteString("Content-Disposition" ))
               lngPos = InstrB(lngPos, RequestBin, GetByteString("name=" ))
               lngPosBegin = lngPos + 6
               lngPosEnd = InstrB(lngPosBegin, RequestBin, GetByteString(Chr(34)))
               strName = LCase(GetString(MidB(RequestBin, lngPosBegin, lngPosEnd - lngPosBegin)))
               lngPosFile = InstrB(lngBoundaryPos, RequestBin, GetByteString("filename=" ))
               lngPosBound = InstrB(lngPosEnd, RequestBin, Boundary)
               
               
               If  lngPosFile <> 0 AND lngPosFile < lngPosBound Then
                     
                    lngPosBegin = lngPosFile + 10
                    lngPosEnd = InStrB(lngPosBegin, RequestBin, GetByteString(Chr(34)))
                    strFileName = GetString(MidB(RequestBin, lngPosBegin, lngPosEnd - lngPosBegin))
                     
                     
                    objUploadControl.Add "FileName" , strFileName
                    lngPos = InStrB(lngPosEnd, RequestBin, GetByteString("Content-Type:" ))
                    lngPosBegin = lngPos + 14
                    lngPosEnd = InStrB(lngPosBegin, RequestBin, GetByteString(Chr(13)))
                     
                     
                    strContentType = GetString(MidB(RequestBin, lngPosBegin, lngPosEnd - lngPosBegin))
                    objUploadControl.Add "ContentType" , strContentType

                     
                    lngPosBegin = lngPosEnd + 4
                    lngPosEnd = InstrB(lngPosBegin, RequestBin, Boundary) - 2
                    Value = MidB(RequestBin, lngPosBegin, lngPosEnd - lngPosBegin)
               Else
                     
                    lngPos = InstrB(lngPos, RequestBin, GetByteString(Chr(13)))
                    lngPosBegin = lngPos + 4
                    lngPosEnd = InStrB(lngPosBegin, RequestBin, Boundary) - 2
                    Value = GetString(MidB(RequestBin, lngPosBegin, lngPosEnd - lngPosBegin))
               End If
               
               
               objUploadControl.Add "Value" , Value      
               
               
               pvObjUploadRequest.Add strName, objUploadControl
               
               
               lngBoundaryPos = InStrB(lngBoundaryPos + LenB(Boundary), RequestBin, Boundary)
          Loop
     End Sub
      
      
     Private Sub Class_TerMINate
          Dim objDictionary

          For Each objDictionary In pvObjUploadRequest.Items
               objDictionary.RemoveAll
               Set objDictionary = Nothing
          Next
          pvObjUploadRequest.RemoveAll
          Set pvObjUploadRequest = Nothing
     End Sub
      

      
     Private Function GetByteString(strString)
          Dim Char
          Dim i
      
          For i = 1 To Len(strString)
                Char = Mid(strString, i , 1)
               GetByteString = GetByteString & ChrB(AscB(Char))
          Next
     End Function


      
     Private Function GetString(strBin)
          Dim intCount
           
          GetString = ""
           
          For intCount = 1 To LenB(strBin)
               GetString = GetString & Chr(AscB(MidB(strBin, intCount, 1)))  
          Next
     End Function
      
      
     Public Function Value(Name)
          Name = LCase(Name)
          If pvObjUploadRequest.Exists(Name) Then
               Value = pvObjUploadRequest.Item(Name).Item("Value" )
          Else
               Value = Empty
          End If
     End Function
      
      
     Public Function ContentType(Name)
          Name = LCase(Name)
          If pvObjUploadRequest.Exists(Name) Then
               If pvObjUploadRequest.Item(Name).Exists("ContentType" ) Then
                    ContentType = pvObjUploadRequest.Item(Name).Item("ContentType" )
               Else
                    ContentType = Empty
               End If
          Else
               ContentType = Empty
          End If
     End Function
      
      
     Public Function FileNamePath(Name)
          Name = LCase(Name)
          If pvObjUploadRequest.Exists(Name) Then
               If pvObjUploadRequest.Item(Name).Exists("FileName" ) Then
                    FileNamePath = pvObjUploadRequest.Item(Name).Item("FileName" )
               Else
                    FileNamePath = Empty
               End If
          Else
               FileNamePath = Empty
          End If
     End Function
      
      
     Public Function FileName(Name)
          Dim strFileName
           
          Name = LCase(Name)
          If pvObjUploadRequest.Exists(Name) Then
               If pvObjUploadRequest.Item(Name).Exists("FileName" ) Then
                    strFileName = pvObjUploadRequest.Item(Name).Item("FileName" )
                    FileName = Right(strFileName, Len(strFileName) - InStrRev(strFileName, "" ))
               Else
                    FileName = Empty
               End If
          Else
               FileName = Empty
          End If
     End Function
      
End Class
%>

KorhanZ
17-01-2009, 22:51   |  #3  
Yeni Üye
Teşekkür Sayısı: 1
28 mesaj
Kayıt Tarihi:Kayıt: Eki 2006

Benim free hostum FSO desteklemiyor, FSO yuklu oldugunu bildiginiz bir free host var mi?