تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كيف أصنع برنامج رفع ملفات لسرفر
#1
كيف أصنع برنامج رفع ملفات لسرفر مثل 0zz0
gulfup...
الرد }}}}
تم الشكر بواسطة:
#2
قمت بتوضيح ذلك بالكامل في مقالتي

[سلسلة التعامل مع الويب] - ارسال الطلبات HttpWebRequset

^ هناك جزئية كاملة تتحدث عن المطلوب (في المشاركة الثالثة)


لازلت اقول ياجماعة

اي خدمة تريد الحصول عليها من اي موقع استعمل الطلبااات (WEB REQUSET)
الرد }}}}
تم الشكر بواسطة:
#3
لكن أحتاج طرقة بال vb.net
الرد }}}}
تم الشكر بواسطة:
#4
elta كتب :لكن أحتاج طرقة بال vb.net

وله يهمك

استطيع كتابة الكلاس من جديد بالفيجوال بيسك

لكن المشكلة هل ستستطيع استخدام الكلاس ؟

لانك لازم تجيب بعض المعلومات من اداة Live http header
الرد }}}}
تم الشكر بواسطة:
#5
لا + لو يمكنك إعطائي سورس
لأتعلم منه
الرد }}}}
تم الشكر بواسطة:
#6
elta كتب :لا + لو يمكنك إعطائي سورس
لأتعلم منه


اممم


المشكلة ليست من السورس

المشكلة انك بتحتاج الى تطبيق الrequset لإستخراج المعلومات بواسطة live header وكتابة طلب

فلو اعطيتك السورس مابتستفيد لان بضل هناك شيئ ناقص في الموضوع

يعني بتقول هذا من وين جاب هذا الكلام وليش كتب جدي ؟؟!

وايضا من كل موقع لموقع تختلف المعطيات يعني لو عطيتك الطريقة على موقع gulfup

ورحت تجربها على 0xx0 مابتنفع

لازم تعطيها متغيرات اخرى عشان تقدر ترفع الى 0xx0


--

حبيبي هذي الامور انت لازم تتعلمها ماتصلح احد يعطيك الطريقة لأنها ستكون لشيئ واحد بس


انا فقط سأوفر لك الفئة المستعملة في الرفع لأي موقع محولة للفيجوال بيسك :

PHP كود :
'All Copyright to alshakiLLah
'
vb4arb
''' <summary>
''' 
ارفع ملفاتك لمراكز الرفع
''' </summary>
''' 
<remarks></remarks>
Public Class 
UploadStationPOST
    
Public Shared Function PostToStations(ByVal PostURL As StringByVal PostDataParameters As Dictionary(Of StringObject)) As String
        Dim boundary 
As String "---------------------------" DateTime.Now.Ticks.ToString("x")
        
Dim boundaryBytes As Byte() = System.Text.Encoding.ASCII.GetBytes((Convert.ToString(vbCr vbLf "--") & boundary) + vbCr vbLf)

        
Dim request As Net.HttpWebRequest DirectCast(Net.WebRequest.Create(PostURL), Net.HttpWebRequest)
        
request.ContentType Convert.ToString("multipart/form-data; boundary=") & boundary
        request
.Method "POST"
        
request.KeepAlive True
        request
.Credentials System.Net.CredentialCache.DefaultCredentials

        
If PostDataParameters IsNot Nothing AndAlso PostDataParameters.Count 0 Then

            Using requestStream 
As IO.Stream request.GetRequestStream()

                For 
Each pair As KeyValuePair(Of StringObjectIn PostDataParameters
                    requestStream
.Write(boundaryBytes0boundaryBytes.Length)
                    If 
TypeOf pair.Value Is FileDisposition Then
                        Dim file__1 
As FileDisposition DirectCast(pair.ValueFileDisposition)
                        
Dim header As String = (Convert.ToString((Convert.ToString("Content-Disposition: form-data; name=""" pair.Key """; filename=""") & file__1.Name) + """" vbCr vbLf "Content-Type: ") & file__1.ContentType) + vbCr vbLf vbCr vbLf
                        Dim bytes 
As Byte() = System.Text.Encoding.UTF8.GetBytes(header)
                        
'كتابة معلومات الملف
                        requestStream.Write(bytes, 0, bytes.Length)

                        Dim buffer As Byte() = New Byte(0) {}
                        '
تجهيز المصفوفة  
                        Dim bytesRead 
As Integer
                        
' كتابة بايتات الملف
                        Using fileStream As IO.FileStream = IO.File.OpenRead(file__1.FilePath)
                            While (InlineAssignHelper(bytesRead, fileStream.Read(buffer, 0, buffer.Length))) <> 0
                                requestStream.Write(buffer, 0, bytesRead)
                            End While
                            fileStream.Close()
                        End Using
                    Else
                        '
البارمترات الاخرى غير بارمتار فايلس
                        Dim data 
As String "Content-Disposition: form-data; name=""" pair.Key """" vbCr vbLf vbCr vbLf pair.Value
                        Dim bytes 
As Byte() = System.Text.Encoding.UTF8.GetBytes(data)
                        
requestStream.Write(bytes0bytes.Length)
                    
End If
                
Next
                Dim trailer 
As Byte() = System.Text.Encoding.ASCII.GetBytes((Convert.ToString(vbCr vbLf "--") & boundary) + "--" vbCr vbLf)
                
requestStream.Write(trailer0trailer.Length)
                
requestStream.Close()
            
End Using
        End 
If


        
'الرد
        Using response As Net.WebResponse = request.GetResponse()
            Using responseStream As IO.Stream = response.GetResponseStream()
                Using reader As New IO.StreamReader(responseStream, System.Text.Encoding.UTF8)
                    Return reader.ReadToEnd()
                End Using
            End Using
        End Using
    End Function


    Public Class FileDisposition
        Public Property Name() As String
            Get
                Return m_Name
            End Get
            Set(ByVal value As String)
                m_Name = Value
            End Set
        End Property
        Private m_Name As String

        Public Property ContentType() As String
            Get
                Return m_ContentType
            End Get
            Set(ByVal value As String)
                m_ContentType = Value
            End Set
        End Property
        Private m_ContentType As String

        Public Property FilePath() As String
            Get
                Return m_FilePath
            End Get
            Set(ByVal value As String)
                m_FilePath = Value
            End Set
        End Property
        Private m_FilePath As String
    End Class
    Private Shared Function InlineAssignHelper(Of T)(ByRef target As T, ByVal value As T) As T
        target = value
        Return value
    End Function

End Class 


اما طريقة الاستخدام (لموقع IraqUp فقط ولاتصلح لغيره)

PHP كود :
Dim postURL As String "http://www.iraqup.com/index2.php"
        'ResultButton.Enabled = false;
        Dim ext As String = System.IO.Path.GetExtension("Ahmed.jpg").ToLower()
        ext = ext.Remove(0, 1)
        If ext = "jpg" Then
            ext = "jpeg"
        End If
        '
on internet jpg is named jpeg
        Dim para 
As New Dictionary(Of StringObject)()
        
'para



        '
اسم الصورة
        
'صيغة الصورة
        '
مكان الصورة
        para
.Add("userfile", New UploadStationPOST.FileDisposition() With _
          
.Name "ali.png"_
          
.ContentType "image/png"_
          
.FilePath "c://ali.png" _
        
})


        
'post
        Dim _result = UploadStationPOST.PostToStations(postURL, para) 


اذا كنت تريد الرفع لموقع اخر عليك بتغيير المعطيات في الكود اعلاه ،
والمعطيات تستطيع الحصول عليها من اداة Live http header
وقد شرح ذلك بالتفصيل في المقالة
الرد }}}}
تم الشكر بواسطة:
#7
شكرا أخي على الشرح
الرد }}}}
تم الشكر بواسطة:
#8
الشاكي لله كتب :


اممم


المشكلة ليست من السورس

المشكلة انك بتحتاج الى تطبيق الrequset لإستخراج المعلومات بواسطة live header وكتابة طلب

فلو اعطيتك السورس مابتستفيد لان بضل هناك شيئ ناقص في الموضوع

يعني بتقول هذا من وين جاب هذا الكلام وليش كتب جدي ؟؟!

وايضا من كل موقع لموقع تختلف المعطيات يعني لو عطيتك الطريقة على موقع gulfup

ورحت تجربها على 0xx0 مابتنفع

لازم تعطيها متغيرات اخرى عشان تقدر ترفع الى 0xx0


--

حبيبي هذي الامور انت لازم تتعلمها ماتصلح احد يعطيك الطريقة لأنها ستكون لشيئ واحد بس


انا فقط سأوفر لك الفئة المستعملة في الرفع لأي موقع محولة للفيجوال بيسك :

PHP كود :
'All Copyright to alshakiLLah
'
vb4arb
''' <summary>
''' 
ارفع ملفاتك لمراكز الرفع
''' </summary>
''' 
<remarks></remarks>
Public Class 
UploadStationPOST
    
Public Shared Function PostToStations(ByVal PostURL As StringByVal PostDataParameters As Dictionary(Of StringObject)) As String
        Dim boundary 
As String "---------------------------" DateTime.Now.Ticks.ToString("x")
        
Dim boundaryBytes As Byte() = System.Text.Encoding.ASCII.GetBytes((Convert.ToString(vbCr vbLf "--") & boundary) + vbCr vbLf)

        
Dim request As Net.HttpWebRequest DirectCast(Net.WebRequest.Create(PostURL), Net.HttpWebRequest)
        
request.ContentType Convert.ToString("multipart/form-data; boundary=") & boundary
        request
.Method "POST"
        
request.KeepAlive True
        request
.Credentials System.Net.CredentialCache.DefaultCredentials

        
If PostDataParameters IsNot Nothing AndAlso PostDataParameters.Count 0 Then

            Using requestStream 
As IO.Stream request.GetRequestStream()

                For 
Each pair As KeyValuePair(Of StringObjectIn PostDataParameters
                    requestStream
.Write(boundaryBytes0boundaryBytes.Length)
                    If 
TypeOf pair.Value Is FileDisposition Then
                        Dim file__1 
As FileDisposition DirectCast(pair.ValueFileDisposition)
                        
Dim header As String = (Convert.ToString((Convert.ToString("Content-Disposition: form-data; name=""" pair.Key """; filename=""") & file__1.Name) + """" vbCr vbLf "Content-Type: ") & file__1.ContentType) + vbCr vbLf vbCr vbLf
                        Dim bytes 
As Byte() = System.Text.Encoding.UTF8.GetBytes(header)
                        
'كتابة معلومات الملف
                        requestStream.Write(bytes, 0, bytes.Length)

                        Dim buffer As Byte() = New Byte(0) {}
                        '
تجهيز المصفوفة  
                        Dim bytesRead 
As Integer
                        
' كتابة بايتات الملف
                        Using fileStream As IO.FileStream = IO.File.OpenRead(file__1.FilePath)
                            While (InlineAssignHelper(bytesRead, fileStream.Read(buffer, 0, buffer.Length))) <> 0
                                requestStream.Write(buffer, 0, bytesRead)
                            End While
                            fileStream.Close()
                        End Using
                    Else
                        '
البارمترات الاخرى غير بارمتار فايلس
                        Dim data 
As String "Content-Disposition: form-data; name=""" pair.Key """" vbCr vbLf vbCr vbLf pair.Value
                        Dim bytes 
As Byte() = System.Text.Encoding.UTF8.GetBytes(data)
                        
requestStream.Write(bytes0bytes.Length)
                    
End If
                
Next
                Dim trailer 
As Byte() = System.Text.Encoding.ASCII.GetBytes((Convert.ToString(vbCr vbLf "--") & boundary) + "--" vbCr vbLf)
                
requestStream.Write(trailer0trailer.Length)
                
requestStream.Close()
            
End Using
        End 
If


        
'الرد
        Using response As Net.WebResponse = request.GetResponse()
            Using responseStream As IO.Stream = response.GetResponseStream()
                Using reader As New IO.StreamReader(responseStream, System.Text.Encoding.UTF8)
                    Return reader.ReadToEnd()
                End Using
            End Using
        End Using
    End Function


    Public Class FileDisposition
        Public Property Name() As String
            Get
                Return m_Name
            End Get
            Set(ByVal value As String)
                m_Name = Value
            End Set
        End Property
        Private m_Name As String

        Public Property ContentType() As String
            Get
                Return m_ContentType
            End Get
            Set(ByVal value As String)
                m_ContentType = Value
            End Set
        End Property
        Private m_ContentType As String

        Public Property FilePath() As String
            Get
                Return m_FilePath
            End Get
            Set(ByVal value As String)
                m_FilePath = Value
            End Set
        End Property
        Private m_FilePath As String
    End Class
    Private Shared Function InlineAssignHelper(Of T)(ByRef target As T, ByVal value As T) As T
        target = value
        Return value
    End Function

End Class 


اما طريقة الاستخدام (لموقع IraqUp فقط ولاتصلح لغيره)

PHP كود :
Dim postURL As String "http://www.iraqup.com/index2.php"
        'ResultButton.Enabled = false;
        Dim ext As String = System.IO.Path.GetExtension("Ahmed.jpg").ToLower()
        ext = ext.Remove(0, 1)
        If ext = "jpg" Then
            ext = "jpeg"
        End If
        '
on internet jpg is named jpeg
        Dim para 
As New Dictionary(Of StringObject)()
        
'para



        '
اسم الصورة
        
'صيغة الصورة
        '
مكان الصورة
        para
.Add("userfile", New UploadStationPOST.FileDisposition() With _
          
.Name "ali.png"_
          
.ContentType "image/png"_
          
.FilePath "c://ali.png" _
        
})


        
'post
        Dim _result = UploadStationPOST.PostToStations(postURL, para) 


اذا كنت تريد الرفع لموقع اخر عليك بتغيير المعطيات في الكود اعلاه ،
والمعطيات تستطيع الحصول عليها من اداة Live http header
وقد شرح ذلك بالتفصيل في المقالة

ما شاء الله عليك، أنا استفدت منك يمكن اكثر من السائل.
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف تتحقق من وجود برنامج مثبت وان لم يكن مثبت تثبته محمد بن عطية 1 59 20-05-17, 09:26 PM
آخر رد: محمود بكرى
  تشغيل برنامج دون الحاجه للاقلاع ببرامج اخري medoddd 0 36 19-05-17, 12:46 PM
آخر رد: medoddd
  افكاركم بخصوص برنامج ادارة محلات بلاي ستيشن Basil Abdallah 3 79 18-05-17, 07:49 PM
آخر رد: Basil Abdallah
  [VB.NET] عايز اعرف ازاى اعمل برنامج بقاعدة بيانات xaml MOSTAFA.KAMEL 3 117 13-05-17, 11:01 PM
آخر رد: العواد الصغير
  طلب برنامج .NET Reactor مع التفعيل OakenShield 0 38 13-05-17, 01:28 PM
آخر رد: OakenShield
  [VB.NET] مشكلة بسيطة في برنامج بسيط يعتمد على( Multi-Threading) أبو نقطة 5 141 13-05-17, 07:41 AM
آخر رد: أبو نقطة
  [VB.NET] اجعل ملفات Dll جزء من مشروعك مع سؤال 0theghost0 1 79 12-05-17, 10:47 PM
آخر رد: silverlight
  مساعدة في ربط برنامج بالسكنر zinab ali 3 84 09-05-17, 10:55 PM
آخر رد: mansoor
  كيف أضيف أداة تقرأ ملفات PDF إلى فيجوال 2010 محمد بن عطية 2 99 09-05-17, 07:59 PM
آخر رد: safalo
  ملفات dll bidaya 7 151 09-05-17, 01:34 AM
آخر رد: bidaya

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم