تقييم الموضوع :
  • 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
وقد شرح ذلك بالتفصيل في المقالة

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] التحكم في برنامج اخر من خلال برنامجي dubai.eig 2 602 21-03-26, 05:59 PM
آخر رد: dubai.eig
  اضافة  يوزر وباسورد الي برنامج مصمم با  devexpress SUDAN 1 386 18-03-26, 07:28 PM
آخر رد: مصمم هاوي
  [VB.NET] أداة مثالية لعرض وتحرير وتنسيق ملفات الوورد Mostafa25 3 454 13-03-26, 09:57 PM
آخر رد: Mostafa25
Star ممكن كود تشغيل ملفات الفيديو نوع mp4 رمضان محمد 2 231 02-02-26, 12:31 PM
آخر رد: الورد الصناعي
  جهاز ارسال رسائل SMS من خلال برنامج فيجوال بيسك جيولوجي مبتدئ 5 1,359 27-01-26, 12:13 PM
آخر رد: fath
Information [VB.NET] مطلوب سورس برنامج من سيربح المليون بدر إشتية 7 7,094 30-11-25, 07:22 AM
آخر رد: Mr_limo
  برنامج نظام محل مواد غذائية crazykinko 0 314 17-10-25, 12:27 AM
آخر رد: crazykinko
  استفسار عن حامية برنامج ahmedramy 2 758 27-04-25, 06:02 PM
آخر رد: princelovelorn
Lightbulb [مشروع] مطلوب برنامج نظام صيدليه بالفيجوال بيسك 2010 May-5 13 11,425 07-02-25, 07:55 PM
آخر رد: الورد2
  طريقة جلب نوع ملفات معينة heem1986 3 686 31-12-24, 11:32 PM
آخر رد: aljzazy

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


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