file tipinde gönderilen post değişkenini almak
file tipinde gönderilen post değişkenini almak
Selam.
type i file olan bir form değişkeninin dosya adını almak istiyorum.
Nasıl alabilirim?
Asp kullanıyorum.
request.querystring ile olmuyor.
type i file olan bir form değişkeninin dosya adını almak istiyorum.
Nasıl alabilirim?
Asp kullanıyorum.
request.querystring ile olmuyor.
bir formda post edilen bir değer var.
dosya upload işlemi gerçekleşiyor.Ben post edilen sayfada yani upload.asp sayfasında dosyanın ismini ve uzantısını almak istiyorum.örneğin kaptan.txt gibi.
File1 isimli dosya ismini yani.
upload.asp sayfasında fso işlemi gerçekleşiyor.ben bir de dosya ismini veritabanına kaydetmek istiyorum.
upload.aspdeki kodlar şu şekilde.burdan dosya ismini almaya çalıştım ama olmadı.filename değişkeninin içi boş gözüküyor.
Kod: Tümünü seç
<FORM ACTION="upload.asp" METHOD=POST>
<STRONG>Dosya adı...</STRONG><BR><BR>
<b><INPUT NAME="File1" style="font-family: Verdana; font-size: 10pt; font-weight: bold; border: 1px solid #254a83; padding: 0; background-color: #ffffff; color:#254a83" SIZE="30" TYPE="file"><BR><BR>
<INPUT type="submit" value="Upload" style="font-family: Verdana; font-size: 8pt; font-weight: bold; border: 1px solid #254a83; padding: 0; background-color: #ffffff; color:#254a83"><BR><BR></td>
</form>
Kod: Tümünü seç
<INPUT NAME="File1"
upload.asp sayfasında fso işlemi gerçekleşiyor.ben bir de dosya ismini veritabanına kaydetmek istiyorum.
upload.aspdeki kodlar şu şekilde.burdan dosya ismini almaya çalıştım ama olmadı.filename değişkeninin içi boş gözüküyor.
Kod: Tümünü seç
ForWriting = 2
adLongVarChar = 201
lngNumberUploaded = 0
'Get binary data from form
noBytes = Request.TotalBytes
binData = Request.BinaryRead (noBytes)
'convery the binary data to a string
Set RST = CreateObject("ADODB.Recordset")
LenBinary = LenB(binData)
if LenBinary > 0 Then
RST.Fields.Append "myBinary", adLongVarChar, LenBinary
RST.Open
RST.AddNew
RST("myBinary").AppendChunk BinData
RST.Update
strDataWhole = RST("myBinary")
End if
strBoundry = Request.ServerVariables ("HTTP_CONTENT_TYPE")
lngBoundryPos = instr(1, strBoundry, "boundary=") + 8
strBoundry = "--" & right(strBoundry, len(strBoundry) - lngBoundryPos)
lngCurrentBegin = instr(1, strDataWhole, strBoundry)
lngCurrentEnd = instr(lngCurrentBegin + 1, strDataWhole, strBoundry) - 1
Do While lngCurrentEnd > 0
'Get the data between current boundry and remove it from the whole.
strData = mid(strDataWhole, lngCurrentBegin, lngCurrentEnd - lngCurrentBegin)
strDataWhole = replace(strDataWhole, strData,"")
'Get the full path of the current file.
lngBeginFileName = instr(1, strdata, "filename=") + 10
lngEndFileName = instr(lngBeginFileName, strData, chr(34))
'Make sure they selected a file.
if lngBeginFileName = lngEndFileName and lngNumberUploaded = 0 Then
Response.Redirect "default.asp?"
End if
'There could be an empty file box.
if lngBeginFileName <> lngEndFileName Then
strFilename = mid(strData, lngBeginFileName, lngEndFileName - lngBeginFileName)
tmpLng = instr(1, strFilename, "\")
Do While tmpLng > 0
PrevPos = tmpLng
tmpLng = instr(PrevPos + 1, strFilename,"\")
Loop
FileName = right(strFilename, len(strFileName) - PrevPos)
lngCT = instr(1,strData, "Content-Type:")
if lngCT > 0 Then
lngBeginPos = instr(lngCT, strData, chr(13) & chr(10)) + 4
Else
lngBeginPos = lngEndFileName
End if
lngEndPos = len(strData)
'Calculate the file size.
lngDataLenth = lngEndPos - lngBeginPos
'Get the file data
strFileData = mid(strData, lngBeginPos, lngDataLenth)
'Create the file.
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(server.mappath(ImageDir) & "/" & FileName, ForWriting, True)
f.Write strFileData
Set f = nothing
Set fso = nothing
lngNumberUploaded = lngNumberUploaded + 1
End if
lngCurrentBegin = instr(1, strDataWhole, strBoundry)
lngCurrentEnd = instr(lngCurrentBegin + 1, strDataWhole, strBoundry) - 1
loop
Dim Baglantim, dsn
Veri="DBQ=" & Server.Mappath("dosya.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
Set baglantim=Server.Createobject("ADODB.Connection")
baglantim.open Veri
sql="insert into tablo1 (dosya) values ('"&adi&"')"
baglantim.execute(sql)
küçük bir denemeyle bende yaptım ve gerekli bilgiyi aldı
Vt'ye kayıt işlemini upload işleminden sonra yaparsanız sanırım çalışır.
Kod: Tümünü seç
<body>
<form method="post" action="deneme.asp?gorev=al"><p>
<input type="file" name="dosya" size="20"><input type="submit" value="Gönder" name="B1"><input type="reset" value="Sıfırla" name="B2"></p>
</form>
<%if Request.QueryString("gorev") = "al" then
dosyaadi = Request.Form("dosya")
Response.write dosyaadi
end if%>
</body>
Benim kullandığım upload kodlarını gönderiyim, eğer server'ınızda Dundas upload bileşeni yüklüyse hiç sorunsuz çalışır.
Kolay gelsin
Kod: Tümünü seç
Case "Dundas"
Set objUpload = Server.CreateObject("Dundas.Upload")
With objUpload
.UseVirtualDir = True
.UseUniqueNames = False
.SaveToMemory()
strNewFileName = .GetFileName(.Files(0).OriginalPath)
strNewFileName = Replace(strNewFileName, " ", "_", 1, -1, 1)
strNewFileName = formatFileName(strNewFileName)
lngErrorFileSize = fileSize(.Files(0).Size, intMaxFileSize)
blnExtensionOK = fileExtension(strNewFileName, saryFileUploadTypes)
If lngErrorFileSize = 0 AND blnExtensionOK Then
.Files(0).SaveAs "kaydedilecekyol/" & strNewFileName
fileUpload = strNewFileName
End If
End With
Set objUpload = Nothing