• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Userform Üzerinden HTTP Post (Upload) Nasıl Yapılır?

  • Konbuyu başlatan Konbuyu başlatan turk-x
  • Başlangıç tarihi Başlangıç tarihi
Katılım
12 Eylül 2006
Mesajlar
204
Excel Vers. ve Dili
Excel 2010 Pro Plus Türkçe
Slm;
1 haftadır forumlarda bu konuyu araştırıyorum şimdiye kadar net bi sonuca ulaşamadım. Bu konuda yardımlarınızı bekliyorum.

Yapmak istediğim webservere xml dosyasını post etmek . Normalde xml transferi için adamlar form oluşturmuşlar ama formda gözat nesnesi kullanıldığı için gözat nesnesine değer yazdıramıyorum. Bu yüzden de başarı sağlayamıyorum.

Xml transferi için kullanılan formun kaynak kodları :
Kod:
<form ENCTYPE="multipart/form-data"
	action="/WPEB/amp/dosyatransfer"
	method="post" name=form1 id=form1 >
<TABLE border="0" >
	<TR>
		<TD width="200">Transfer Edilecek XML Dosya Adı</TD>
		<TD>:</TD>
		<TD ><input type="FILE" name="dosya" ENCTYPE="multipart/form-data" style = "caption:'abc'"  ></TD>
	</TR>

	<TR>
		<TD colspan=3>
		
		<table cellspacing="0" cellpadding="0" align="center"> 
		<tr>
		<td width="5" align="right"><img src="/WPEB/image/interface/buttonLeft.jpg"></td>
	    <td background="/WPEB/image/interface/buttonBack.jpg"> 
	    <input class="newInputButton" type="button"  name="btnSubmit" width="100%" 	value="    Dosyayı Gönder    " onclick="form1.submit();"></td>
	    <td width="5"><img src="/WPEB/image/interface/buttonRight.jpg"></td>
	    </tr> 
	    </table> 		
<!--
		<center><input type=submit style="width:200;font-weight:600" value="Dosyayı Gönder"  class=inputsubmit  onmouseover="this.className='inputSubmitHover';" onmouseout="this.className='inputSubmit';"  >
-->
		</TD>
	</TR>
	<TR>
		<TD colspan=3>
		<center> Xml Dosya Transferi İle Gönderdiğiniz Verileri Hizmet Belgesi Giriş Ekranından Toplu Kontrole Gönderiniz.
		</TD>
	</TR>
	<TR>
		<TD colspan=3>
		<center>
		</TD>
	</TR>
</TABLE>

</form>
 
Forumlarda Gezerken aşağıdaki kodu buldum.

Kod:
'******************* upload - begin
'Upload file using input type=file
Sub UploadFile(DestURL As String, FileName As String, _
  Optional ByVal FieldName As String = "File")
  Dim sFormData As String, d As String
  
  'Boundary of fields.
  'Be sure this string is Not In the source file
  Const Boundary As String = "---------------------------0123456789012"

  'Get source file As a string.
  sFormData = GetFile(FileName)
  
  'Build source form with file contents
  d = "--" + Boundary + vbCrLf
  d = d + "Content-Disposition: form-data; name=""" + FieldName + """;"
  d = d + " filename=""" + FileName + """" + vbCrLf
  d = d + "Content-Type: application/upload" + vbCrLf + vbCrLf
  d = d + sFormData
  d = d + vbCrLf + "--" + Boundary + "--" + vbCrLf
  
  'Post the data To the destination URL
  IEPostStringRequest DestURL, d, Boundary
End Sub

'sends URL encoded form data To the URL using IE
Sub IEPostStringRequest(URL As String, FormData As String, Boundary As String)
  'Create InternetExplorer
  Dim WebBrowser: Set WebBrowser = CreateObject("InternetExplorer.Application")
  
  'You can uncoment Next line To see form results
  'WebBrowser.Visible = True
   
  'Send the form data To URL As POST request
  Dim bFormData() As Byte
  ReDim bFormData(Len(FormData) - 1)
  bFormData = StrConv(FormData, vbFromUnicode)

  WebBrowser.Navigate URL, , , bFormData, _
    "Content-Type: multipart/form-data; boundary=" + Boundary + vbCrLf

  Do While WebBrowser.busy
'    Sleep 100
    DoEvents
  Loop
  WebBrowser.Quit
End Sub

'read binary file As a string value
Function GetFile(FileName As String) As String
  Dim FileContents() As Byte, FileNumber As Integer
  ReDim FileContents(FileLen(FileName) - 1)
  FileNumber = FreeFile
  Open FileName For Binary As FileNumber
    Get FileNumber, , FileContents
  Close FileNumber
  GetFile = StrConv(FileContents, vbUnicode)
End Function
'******************* upload - end


Ama Bu kodu çalıştıramadım.
Butona atayarak Aşağıdaki gibi kullanmayı denedim.

UploadFile("SiteAdresi","Yüklenecek.xml", "Dosya")
 
Arkadaşlar Bu Konuda Yardımlarınızı Bekliyorum...
 
Geri
Üst