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.
Link Yazdırma!!!
8
●1.018
- 30-01-2010, 17:33:28jquery 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:54form 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, 13:42:54ARkadaş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"> </td>
<td background="images/orta.png" width="275">
</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"> </td>
<td background="images/orta.png" width="20"> </td>
</tr>
<tr>
<td background="images/orta.png" width="20"> </td>
<td background="images/orta.png" width="275"> </td>
<td background="images/orta.png" width="72"> </td>
<td background="images/orta.png" width="8"> </td>
<td background="images/orta.png" width="465"> &n bsp; &nbs p; <input type="submit" value="Kaydet"></td>
<td background="images/orta.png" width="16"> </td>
<td background="images/orta.png" width="20"> </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"> </td>
<td background="images/orta.png" width="72"> </td>
<td background="images/orta.png" width="8"> </td>
<td background="images/orta.png" width="465"> </td>
<td background="images/orta.png" width="16"> </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:55:16arkadaşı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 - 31-01-2010, 17:05:29ok, 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>