• 30-01-2010, 15:23:30
    #1
    Merhaba arkadaşlar.
    Sorunum şu şekilde;

    Formumda bilgisayardan dosya seçip serverde belirttiğim klasöre fso ile dosyayı upload yapıyorum.Ancak dosyanın linkini de dbye kayıt etmem gerekiyor.
    Aklımda önce dosyayı upload edip sonraki adımda linkini ve diğer bilgileri dbye kayıt edeyim dedim.Ancak bir sonraki sayfada dosyanın kayıt edildiği urlyi bilmem gerekiyor.Yani deneme.doc dosyasını servere upload ettikten sonra bir sonraki adımda onun kayıt edildiği yerin linkini dbye kaydetmem gerekiyor.
    1 - Kayıt edilen dosyayı bir sonraki adımda sayfaya nasıl yazdırabilirim?
    2 - Bu işlemin başka bir yolu varmıdır?

    Şimdiden herkese teşekkürler.
  • 30-01-2010, 17:33:28
    #2
    jquery ile şöyle çözersin mesela:

    dosya upload formunun sayfasına bir hidden input aç. (form içinde olması şart değil.)
    browse ile dosyayı seçtikten sonra, onsubmit veya onclick fonksiyonuna jquery ile bu inputun değerini alıp, diğer hidden inputa ata. bu hidden inputuda diğer sayfada okutup, otomatik olarak alırsın.
  • 30-01-2010, 19:46:54
    #3
    form bölümü
    <%@LANGUAGE="VBSCRIPT"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Resim Yükle</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
    <style type="text/css">
    <!--
    body {
    background-color:#fff;
    }
    -->
    </style>
    </head>

    <body topmargin="0">
    <!--#include file="ayarlar.asp"-->
    <table width="500" border="0" style=" background-color:#fff; ">
    <tr>
    <td height="40" style="font-size:14px; font-family:Arial, Helvetica, sans-serif; font-weight:bold; color:#000; text-align:center; background-color:#0CF;">Resim Ekleme Bölümü</td>
    </tr>
    </table>
    <form method="post" enctype="multipart/form-data" action="resim_uploadsafha.asp">
    <table width="500" border="0" bgcolor="#FFFFFF" style="border:1px #0CF solid;" >
    <tr>
    <td height="10"></td>
    </tr>
    <tr>
    <td style="text-align:center; ">
    <input type="file" size="40" name="file1"><br />
    <input type="file" size="40" name="file2"><br />
    <input type="file" size="40" name="file3"><br />
    <input type="file" size="40" name="file4"><br />
    <input type="file" size="40" name="file5"><br />
    <input type="file" size="40" name="file6"><br />
    <input type="file" size="40" name="file7"><br />
    <input type="file" size="40" name="file8"><br />
    </td>
    </tr>
    <tr>
    <td height="10"></td>
    </tr>
    <tr>
    <td style="text-align:center; "><input type="submit" value="Yükle"> </td>
    </tr>
    <tr>
    <td height="10"></td>
    </tr>

    </table>
    </form>
    </body>
    </html>

    Upload bölümü
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    </head>
    <body OnLoad="yonlendir()" leftmargin="0" topmargin="30" bgcolor="#ffffff">
    <img src="images/yukleniyor.gif" id="yukleniyor" style="position: absolute; left:40%; top:50%;">
    <center>
    <!--#include file="ayarlar.asp"-->/* dbase bağlantılarının bulunduğu dosya
    <table width="90%" border="0" cellspacing="0" cellpadding="0" height="30%">
    <tr>
    <td align="center" valign="_top">
    <%
    dim resimlinkler(9)
    sonip=session("ilankayitno") / bu resmi eğer bir konu altında kaydetmek istiyorsan kategori belirlemek için kullan
    i=1
    Set Upload = Server.CreateObject("Persits.Upload")
    Upload.OverwriteFiles = False
    Count = Upload.SaveToMemory
    If Count > 0 Then
    For Each File in Upload.Files
    Set File = Upload.Files(i)
    adi=File.FileName
    duzanti = right(adi,3)
    dosya = session("ilankayitno")&"_nolu_safha_resim_"&i&"."& duzanti
    resimlinkler(i)="resimler/safha/"&sonip&"_nolu_safha_resim_"&i&"."&duzanti
    Path = Server.MapPath("../resimler/safha" )&"\" & dosya
    dirname = "../resimler/"
    kklasor = "../resimler/safha/" 'resmin kk boy olarak saklanacagi klasr
    bklasor = "../resimler/safha/" 'resmin byk boy olarak saklanacagi klasr
    if duzanti <> "gif" and duzanti <> "jpg" and duzanti <> "png" then
    response.write "<br><br><br><br><center><font class=red><small><b>zgnm ! <br><br>Sadece resim dosyasi ekleyebilirsiniz. Ltfen bir resim dosyasi ile tekrar deneyiniz.<br><br><br>Resim dosyalarinin uzantilari; jpg, gif veya png olmalidir.<br><br><br><br><a href=javascript:history.back();>Geri Dn</a><br><br>"
    response.end
    end if
    File.SaveAs Path
    i=i+1
    next
    resim1=resimlinkler(1)
    resim2=resimlinkler(2)
    resim3=resimlinkler(3)
    resim4=resimlinkler(4)
    resim5=resimlinkler(5)
    resim6=resimlinkler(6)
    resim7=resimlinkler(7)
    resim8=resimlinkler(8)
    set kd = server.CreateObject("ADODB.Recordset")
    kd.open "Select * From safha where id="&sonip&"",bag,1,3'buraya resmin
    'kayitolacagi tabloyu yazmalisin
    kd("resim1") = resim1
    kd("resim2") = resim2
    kd("resim3") = resim3
    kd("resim4") = resim4
    kd("resim5") = resim5
    kd("resim6") = resim6
    kd("resim7") = resim7
    kd("resim8") = resim8
    kd.update
    Else
    Response.Write "Hata Olustu..."
    End If

    %>


    </BODY>
    </HTML>
  • 31-01-2010, 02:33:42
    #4
    aslında ben verdiğim fikre bi örnek yazsaydım iyi olurdu. çok kısa bi js kodu ile daha pratik bi şekilde halledilebilir. neyse, gerekirse ekleyin, uygun bi vakitte yazıp koyuyum buraya.
  • 31-01-2010, 02:52:33
    #5
    Upload bölümündeki kodlarınızı yazarsanız yardımcı olurduk..
  • 31-01-2010, 13:42:54
    #6
    ARkadaşlar hepinize teşekkürler.Yazdıklarınızı şimdi okuma fırsatı bulabildim.
    Aşağıda kodları teker teker yazdım.

    Upload edilecek dosyanın seçim ekranının form kodları

    <form method="post" enctype="multipart/form-data" action="upload.asp">
    <p align="center">
    <table border="0" id="table2" cellspacing="0" cellpadding="0" width="876">
    <tr>
    <td width="20"><img border="0" src="images/kose1.png" width="20" height="20"></td>
    <td background="images/orta.png" colspan="5">
    <p align="center"><b>
    <font color="#FFFFFF" face="Arial Narrow">Yeni Firma Banner'i Ekleme
    Ekranı</font></b></td>
    <td width="20"><img border="0" src="images/kose2.png" width="20" height="20"></td>
    </tr>
    <tr>
    <td background="images/orta.png" width="20">&nbsp;</td>
    <td background="images/orta.png" width="275">
    &nbsp;</td>
    <td background="images/orta.png" width="72">
    <font color="#FFFFFF" face="Arial Narrow">Banner</font></td>
    <td background="images/orta.png" width="8">
    <font color="#FFFFFF" face="Arial Narrow">:</font></td>
    <td background="images/orta.png" width="465">
    <INPUT NAME="BannerLink" SIZE="30" TYPE=file></td>
    <td background="images/orta.png" width="16">&nbsp;</td>
    <td background="images/orta.png" width="20">&nbsp;</td>
    </tr>
    <tr>
    <td background="images/orta.png" width="20">&nbsp;</td>
    <td background="images/orta.png" width="275">&nbsp;</td>
    <td background="images/orta.png" width="72">&nbsp;</td>
    <td background="images/orta.png" width="8">&nbsp;</td>
    <td background="images/orta.png" width="465">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;<input type="submit" value="Kaydet"></td>
    <td background="images/orta.png" width="16">&nbsp;</td>
    <td background="images/orta.png" width="20">&nbsp;</td>
    </tr>
    <tr>
    <td width="20"><img border="0" src="images/kose3.png" width="20" height="20"></td>
    <td background="images/orta.png" width="275">&nbsp;</td>
    <td background="images/orta.png" width="72">&nbsp;</td>
    <td background="images/orta.png" width="8">&nbsp;</td>
    <td background="images/orta.png" width="465">&nbsp;</td>
    <td background="images/orta.png" width="16">&nbsp;</td>
    <td width="20"><img border="0" src="images/kose4.png" width="20" height="20"></td>
    </tr>
    </table>


    Tuşa basıldığında yönlendirdiği upload.asp dosyasının kodları;

    <!--#include file="CBUpload.asp" --><%
    dim Upload, File, Item, iTimer
    iTimer = Timer()
    Server.ScriptTimeout = 36000
    set Upload = new cls_CBUpload
    Response.Write("File count: " & Upload.Files.Count)
    Response.Write("<br /><br />")
    for each File in Upload.Files
    set File = Upload.Files(File)
    Response.Write(File.Name & "<br />")
    Response.Write(File.Size & " bytes<br />")
    Response.Write(File.FormName & "<br />")
    Response.Write(File.ContentType & "<br />")
    if(File.SaveToFile(Server.Mappath("banners/" & File.Name))) then
    Response.Write("Saved file...<br />")
    end if
    Response.Write("<br />")
    next
    for each Item in Upload.Form
    Response.Write(Item & ": " & Upload.Form(Item) & "<br />")
    next
    set Upload = nothing
    Response.Write(Timer - iTimer)
    %>

    upload.asp dosyasına include edilen dosyanın kodları;

    <%
    '************************************************* ****
    '************************************************* ****
    '** **
    '** CrazyBeavers Upload Class v 1.2 **
    '** **
    '** If you wish to use this piece of code in **
    '** your own applications you have to let this **
    '** statement remain in it's current state. If **
    '** you plan to redistribute your application **
    '** you will have to have inform the users **
    '** that you are using CB Upload Class and that **
    '** they can find more information about it on **
    '** CrazyBeaver Softwares homepage located at the **
    '** URL below: **
    '** **
    '** http://www.crazybeavers.se/ **
    '** **
    '** Large parts of this code is based on code by **
    '** Gez Lemon of Juicy Stuido. It has been **
    '** and partially rewritten and enhanced by **
    '** CrazyBeaver Software along with it's new class **
    '** interface. For more information on Juicy **
    '** Studio please see the URL below: **
    '** **
    '** http://www.juicystudio.com/ **
    '** **
    '** / Karl-johan Sjögren **
    '** http://www.crazybeavers.se/ **
    '** © 2005 CrazyBeaver Software **
    '** **
    '************************************************* ****
    '************************************************* ****

    class cls_CBUpload_File
    public Name
    public Data
    public ContentType
    public FormName

    public function Size
    Size = len(Data)
    end function

    public function SaveToFile(sFilename)
    dim sBrowser
    dim oFSO, oSaveFile
    dim iStartPos
    set oFSO = server.createObject("Scripting.FileSystemObject")

    SaveToFile = true

    on error resume next
    set oSaveFile = oFSO.CreateTextFile(sFilename, true)
    oSaveFile.Write(Data)
    oSaveFile.Close

    if(Err <> 0) then
    SaveToFile = false
    end if

    on error goto 0

    set oSaveFile = Nothing
    set oFSO = Nothing
    end function
    end class

    class cls_CBUpload
    public Form
    public Files
    public Error

    sub parseFormData(byref aData)

    Response.Write(Timer - iTimer & "<br />")
    dim iCounter, iEndMarker
    dim sFieldInfo, sFieldValue
    dim oFile
    for iCounter = 0 to UBound(aData)
    iEndMarker = instr(aData(iCounter), vbCrLf & vbCrLf)
    if iEndMarker > 0 then
    sFieldInfo = mid(aData(iCounter), 3, iEndMarker - 3)
    sFieldValue = mid(aData(iCounter), iEndMarker + 4, len(aData(iCounter)) - iEndMarker - 7)
    if(instr(sFieldInfo, "filename=") > 0) then
    if(len(getFileName(sFieldInfo)) > 0) then
    set oFile = new cls_CBUpload_File
    oFile.Name = getFileName(sFieldInfo)
    oFile.FormName = getFieldName(sFieldInfo)
    oFile.Data = sFieldValue
    oFile.ContentType = getContentType(sFieldInfo)
    call Files.Add(getFieldName(sFieldInfo), oFile)
    set oFile = nothing
    end if
    else
    call Form.Add(getFieldName(sFieldInfo), sFieldValue)
    end if
    end if
    next
    end sub

    function getFieldName(sData)
    dim iStartPos, iEndPos, sQuote
    if(sData = "") then
    getFieldName = ""
    exit function
    end if
    sQuote = chr(34)
    iStartPos = instr(sData, "name=")
    iEndPos = instr(iStartPos + 6, sData, sQuote & ";")
    if iEndPos = 0 then
    iEndPos = instr(iStartPos + 6, sData, sQuote)
    end if
    getFieldName = mid(sData, iStartPos + 6, iEndPos - (iStartPos + 6))
    end function

    function getContentType(byval sData)
    dim iStartPos, iEndPos
    if(sData = "") then
    getContentType = ""
    exit function
    end if
    iStartPos = instr(sData, "Content-Type: ")
    iEndPos = len(sData)
    getContentType = mid(sData, iStartPos + 14, iEndPos)
    end function

    function getFileName(byval sData)
    dim sBrowser
    dim iStartPos, iEndPos, sQuote
    if(sData = "") then
    getFieldName = ""
    exit function
    end if
    sQuote = Chr(34)
    iStartPos = instr(sData, "filename=")
    iEndPos = instr(iStartPos + 10, sData, sQuote & ";")
    if iEndPos = 0 then
    iEndPos = instr(iStartPos + 10, sData, sQuote)
    end if
    sData = mid(sData, iStartPos + 10, iEndPos - (iStartPos + 10))

    sBrowser = UCase(Request.ServerVariables("HTTP_USER_AGENT"))
    if(instr(sBrowser, "WIN") > 0) then
    iStartPos = instrrev(sData, "\")
    sData = mid(sData, iStartPos + 1)
    else
    iStartPos = instrrev(sData, "/")
    sData = mid(sData, iStartPos + 1)
    end if

    getFileName = sData
    end function

    function parseRequest()
    const adLongVarChar = 201
    dim oRS
    dim iBytesRead, iBlockSize, iTotalBytes

    iTotalBytes = Request.TotalBytes
    iBlockSize = 16384
    iBytesRead = 0

    set oRS = CreateObject("ADODB.Recordset")
    oRS.Fields.Append "BinaryField", adLongVarChar, iTotalBytes
    oRS.Open
    oRS.AddNew

    do while(iBytesRead < iTotalBytes)
    if(iBytesRead + iBlockSize < iTotalBytes) then
    oRS("BinaryField").AppendChunk Request.BinaryRead(iBlockSize)
    iBytesRead = iBytesRead + iBlockSize
    else
    oRS("BinaryField").AppendChunk Request.BinaryRead(iTotalBytes - iBytesRead)
    iBytesRead = iTotalBytes
    end if
    loop

    oRS.Update
    parseRequest = oRS.Fields("BinaryField").Value
    oRS.Close
    set oRS = nothing
    end function

    sub Class_Initialize
    dim sData, sContentType, sBoundary
    dim iEndPos
    dim aData

    sContentType = Request.ServerVariables("HTTP_CONTENT_TYPE")

    if InStr(sContentType, "multipart/form-data") > 0 then
    sData = parseRequest
    iEndPos = InStrRev(sContentType, "=")
    sBoundary = Trim(Right(sContentType, Len(sContentType) - iEndPos))
    aData = Split(sData, sBoundary)
    set Form = CreateObject("Scripting.Dictionary")
    set Files = CreateObject("Scripting.Dictionary")
    call parseFormData(aData)
    else
    Error = "Incorrect encoding type"
    end if
    end sub

    sub Class_Terminate
    set Form = nothing
    set Files = nothing
    end sub
    end class
    %>

    Bu kodlarım sadece dosyayı servere atmama yardımcı oluyor.Ama ben servre atarken yada attıkta sonra dbye linkini ve bilgilerini kayıt etmek istiyorum.
    Yardımlarınız için şimdiden teşekkürler.
  • 31-01-2010, 14:48:39
    #7
    oohooo. kardeş bu kadar şey yazdık, daha bakmamışsın bile yaff. soruyu baştan soruyon şimdi, bi bak önce yazılanlara.
  • 31-01-2010, 14:55:16
    #8
    arkadaşım Linebilisim isimli üye istediği için yazdım.Kafamıza göre iş yapmıyoruz burda.Sende yazılan mesajları bi oku ondan sonra eleştir istiyosan.Alla Alla.

    anka81 adlı üyeden alıntı: mesajı görüntüle
    oohooo. kardeş bu kadar şey yazdık, daha bakmamışsın bile yaff. soruyu baştan soruyon şimdi, bi bak önce yazılanlara.
  • 31-01-2010, 17:05:29
    #9
    ok, yanlış anlaşılma diyelim. (yazılanları okudum bu arada, soruyu baştan sordun sandım.)

    jquery ile şu şekilde örnek bişi yaptım. formun submit veya click fonksiyonuna atayabilirsin. son kullanıcıyla işin yoksa inputun hidden olması şart değil. bu arada, güvenlik nedeniyle firefox tam yolun atanmasına izin vermiyor, ie de sorun yok.

    dosyayı yükledikten sonra, kayıt yaparken normal form değerini request.form ile alabilirsin. dosya upload ve form almak için (multi part form data olayı) asp de binary ile mi ne yapılıyodu öyle bişi. aynı formdan göndereceksen ona dikkat et.

    veya, başka şekillerde de taşıyabilirsin veriyi galiba. neyse, bi bak:




    <head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {

    $("#yukle").click(function() {

    var neymis = $("#dosya").val();
    $("#yol").attr("value", neymis);
    });
    });
    </script>
    </head>

    <body>
    <form method="POST" enctype="multipart/form-data" action="yukle.asp">

    dosya: <input type="file" id="dosya"><br>
    yol: <input type="text" id="yol" value=""><br>
    <br>
    <input type="submit" id="yukle" value="yukle">
    </form>